Typo3 10.4.1 使用文件 ref 扩展页面

Typo3 10.4.1 extend pages with an file ref

希望有识之士看到这篇文章。

任务很简单,但出了点问题。 我写了一个扩展来扩展页面 table 每个页面都有一些新的道具。

这些值是: 1 个布尔值(扩展是否激活) 1 文本值(例如 css class 名称) 1 文件链接到 sys_file 上传图片

字段本身在后端按预期工作。 fields in backend 但是,如果我尝试通过前端的流体访问它们,是否只保存了一个 lony 1 (Int)?

在流体中: {data.tx_mnadditionalpagefields_extended_background_image}

导致这个 -> 1 (Integer)

我做错了什么?

我的ext_tables.sql

CREATE TABLE pages (
    tx_mnadditionalpagefields_custom_css_class varchar(255) DEFAULT '' NOT NULL,
    tx_mnadditionalpagefields_activate_extended_rules TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL,
    tx_mnadditionalpagefields_extended_background_image int(11) unsigned NOT NULL default '0'
);

我的分机.../Configuration/TCA/Overrides/pages.php

<?php

defined('TYPO3_MODE') or die();

// Configure new fields:
$fields = [
    'tx_mnadditionalpagefields_custom_css_class' => [
        'label' => 'LLL:EXT:nm_addtional_page_fields/Resources/Private/Language/locallang_db.xlf:pages.tx_mnadditionalpagefields_custom_css_class',
        'exclude' => 1,
        'config' => [
            'type' => 'input',
            'max' => 255
        ],
    ],
    'tx_mnadditionalpagefields_activate_extended_rules' => [
        'exclude' => 1,
        'label' => 'LLL:EXT:nm_addtional_page_fields/Resources/Private/Language/locallang_db.xlf:pages.tx_mnadditionalpagefields_activate_extended_rules',
        'config' => [
            'type' => 'check',
            'default' => 0
        ]
    ],
    'tx_mnadditionalpagefields_extended_background_image' => [
        'exclude' => 1,
        'label' => 'LLL:EXT:nm_addtional_page_fields/Resources/Private/Language/locallang_db.xlf:pages.tx_mnadditionalpagefields_extended_background_image',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'tx_mnadditionalpagefields_extended_background_image',
            [
                'maxitems' => 1,
                'minitems' => 0,
                'appearance' => [
                    'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference'
                ],
                //'foreign_match_fields' => array(
                //    'fieldname' => 'tx_mnadditionalpagefields_extended_background_image',
                //    'tablenames' => 'pages',
                //    'table_local' => 'sys_file',
                //),
            ],
            $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
        ),
    ]
];

// Add new fields to pages:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', $fields);

// Make fields visible in the TCEforms:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'pages', // Table name
    '--palette--;LLL:EXT:nm_addtional_page_fields/Resources/Private/Language/locallang_db.xlf:pages.palette_title;nm_addtional_page_fields', // Field list to add
    '1', // List of specific types to add the field list to. (If empty, all type entries are affected)
    'after:nav_title' // Insert fields before (default) or after one, or replace a field
);

// Add the new palette:
$GLOBALS['TCA']['pages']['palettes']['nm_addtional_page_fields'] = [
    'showitem' => 'tx_mnadditionalpagefields_activate_extended_rules,tx_mnadditionalpagefields_custom_css_class,tx_mnadditionalpagefields_extended_background_image'
];

扩展下载(WIP):download

对于images/files,本地table只存储对文件的引用计数。 (int)1 表示,有 one 参考。

查看 DataProcessing,了解如何将这些文件引用与 Fluid 一起使用: https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/7.4/Feature-67662-DataProcessorForFiles.html