0

我正在尝试将新的复选框字段“showinhome”添加到表“tx_news_domain_model_media”与字段“showinpreview”相同这是我在 Configuration/TCA/Overrides/tx_news_domain_model_media.php 中的 TCA 配置

$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,';

该字段未显示,有人可以帮助我吗?

4

1 回答 1

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 之后加载。如果您在安装扩展后更改了依赖项,您可能需要在扩展管理器中卸载并重新安装它。

于 2016-09-12T16:12:14.500 回答