![](/img/trans.png)
[英]Typo3: Simplest way to add a custom field to all tt_content in 6.2
[英]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#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 -文件。
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.