我正在尝试向表'tx_news_domain_model_media'添加一个新的复选框字段'showinhome',与'showinpreview'字段相同,这是我在Configuration / TCA / Overrides中的TCA配置/ tx_news_domain_model_media.php
$temporaryColumns = [
'showinhome' => [
'exclude' => 1,
'label' => 'Show in Home',
'config' => [
'type' => 'check',
'default' => 0,
],
],
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tx_news_domain_model_media',
$temporaryColumns
);
$GLOBALS['TCA']['tx_news_domain_model_media']['ctrl']['label_alt'] .= ', showinhome';
$GLOBALS['TCA']['tx_news_domain_model_media']['interface']['showRecordFieldList'] .= ', showinhome';
$GLOBALS['TCA']['tx_news_domain_model_media']['palettes']['newsPalette']['showitem'] .= 'showinhome,';
该字段未显示,有人可以帮助我吗?
答案 0 :(得分:1)
首先:tx_news可以使用自己的媒体模型或本机FAL关系。我个人总是使用原生的FAL关系。
如果要将此字段添加到媒体表,则那里没有newsPalette
。您可以使用以下代码添加新字段:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_news_domain_model_media', $temporaryColumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tx_news_domain_model_media', implode(',', array_keys($temporaryColumns)));
如果使用正常的FAL关系,则showinpreview
字段将添加到sys_file_reference
表的TCA配置中,而不会添加到tx_news_domain_model_media
表。
如果要将此字段添加到文件中,则需要将其添加到sys_file_reference
字段,方法与tx_news相同(我猜您已经从其覆盖文件中复制了代码)
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('sys_file_reference', $temporaryColumns);
// add special news palette
$GLOBALS['TCA']['sys_file_reference']['palettes']['newsPalette']['showitem'] .= ', showinhome';
最后但并非最不重要:您必须在扩展中指定tx_news作为依赖项,否则TYPO3不知道您的扩展必须在tx_news之后加载。如果在安装扩展程序后更改依赖关系,则可能需要在扩展管理器中重新卸载并重新安装。