将自定义图像字段添加到tt_content

时间:2020-09-14 07:45:06

标签: typo3 typo3-9.x

如何将自定义图像字段正确添加到tt_content?我使用Overrides / tt_content.php和ext_tables.sql制作了第一部分,因此可以在后端看到新字段,并且在前端上下文中可以看到data.tx_pnbase_icon。
但是,即使有文件列表的弹出窗口起作用,我也无法在后端选择图像,也无法保存图像。
我是否必须告诉tt_content将字段与sys_file_reference连接(在Typoscript中)? 还是我什至必须扩展Content模型?

Field in backend

<?php

$temporaryColumn = array(
    'tx_pnbase_icon' => [
        'label' => 'Icon für Inhalt',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'tx_pnbase_icon',
            [
                'appearance' => [
                    'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFilegallery'
                ],
                'foreign_types' => [
                    '0' => [
                        'showitem' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                    ],
                    \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
                        'showitem' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                    ],
                    \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
                        'showitem' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                    ],
                    \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
                        'showitem' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                    ],
                    \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
                        'showitem' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                    ],
                    \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
                        'showitem' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                    ]
                ],
                'foreign_match_fields' => [
                    'fieldname' => 'tx_pnbase_icon',
                    'tablenames' => 'tt_content',
                    'table_local' => 'sys_file',
                ],
                'maxitems' => 1
            ],
            $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
        ),
    ],
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
        'tt_content',
        $temporaryColumn
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
        'tt_content',
        'appearanceLinks', //  layout
        'tx_pnbase_icon',
        'after:layout' // 'after:' layout
);

在ext_tables.sql中

CREATE TABLE tt_content (
        tx_pnbase_icon int(11) unsigned NOT NULL default '0'
);

1 个答案:

答案 0 :(得分:0)

默认情况下,TYPO3将仅在列内存储关系数。 如果您正在使用TypoScript FLUIDTEMPLATE,则可以使用数据处理来解决文件关系。有关概念的概述,请参见https://docs.typo3.org/m/typo3/reference-typoscript/10.4/en-us/ContentObjects/Fluidtemplate/Index.html#dataprocessing,有关要使用的具体处理器,请参见https://github.com/TYPO3/TYPO3.CMS/blob/10.4/typo3/sysext/frontend/Classes/DataProcessing/FilesProcessor.php。所有处理器的PHPDoc中都有示例用法。

如果您使用普通的TypoScript,则应该能够使用FILES cObject:https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Files/Index.html#cobj-files

https://docs.typo3.org/m/typo3/reference-coreapi/10.4/en-us/ApiOverview/Fal/UsingFal/Frontend.html包含有关如何检索文件的整个概述。

相关问题