【问题标题】:Adding new checkbox field to tx_news_domain_model_media将新的复选框字段添加到 tx_news_domain_model_media
【发布时间】:2016-09-12 14:28:36
【问题描述】:

我正在尝试将新的复选框字段“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,';

字段不显示,谁能帮帮我?

【问题讨论】:

  • 最后一行字段名前不应该有逗号吗? $GLOBALS['TCA']['tx_news_domain_model_media']['palettes']['newsPalette']['showitem'] .= ',showinhome';
  • $TCA['tx_news_domain_model_media']['palettes']['paletteCore']['showitem'] = 'type,showinpreview, hidden,sys_language_uid, l10n_parent, l10n_diffsource,showinhome,';它出现在配置中,所以

标签: typo3 extbase tx-news


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

【讨论】:

  • 感谢您的回答,当我在 ext_tables.php 中添加配置时,该字段将显示,但在 Confifuration/TCA/Overrides/sys_file_reference.php 中不显示。我不知道为什么。
猜你喜欢
  • 2013-09-24
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多