簡體   English   中英

將自定義圖像字段添加到 tt_content

[英]Add custom image field to tt_content

如何正確地向 tt_content 添加自定義圖像字段? 我使用 Overrides/tt_content.php 和 ext_tables.sql 制作了第一部分,因此我可以在后端看到新字段,在前端上下文中我得到 data.tx_pnbase_icon。
但是我無法在后端選擇圖像,也不會保存,即使帶有文件列表的彈出窗口有效。
我是否必須告訴 tt_content 將字段與 sys_file_reference(在 Typoscript 中)連接? 或者,我什至必須擴展內容模型嗎?

后台字段

<?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'
);

默認情況下,TYPO3 只會存儲列內的關系數。 如果您正在使用 TypoScript FLUIDTEMPLATE ,您可以使用數據處理來解決文件關系。 有關概念的概述,請參閱https://docs.typo3.org/m/typo3/reference-typoscript/10.4/en-us/ContentObjects/Fluidtemplate/Index.html#dataprocessinghttps://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 -文件

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM