2016-09-12 4 views
0

Я пытаюсь добавить новое поле флажок «showinhome» к столу «tx_news_domain_model_media» же в поле «showinpreview» вот мой TCA конфигурации в Configuration/TCA/Заменяет/tx_news_domain_model_media.phpДобавление нового поля Флажок tx_news_domain_model_media

$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

Не должна ли последняя строка иметь запятую перед именем поля? '$ GLOBALS ['TCA'] ['tx_news_domain_model_media'] ['palettes'] ['newsPalette'] ['showitem']. = ', Showinhome';' –

+0

$ TCA ['tx_news_domain_model_media'] ['palettes'] [ 'palettteCore'] ['showitem'] = 'type, showinpreview, hidden, sys_language_uid, l10n_parent, l10n_diffsource, showinhome,'; он появляется в конфигурации так – user2917236

ответ

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 таблицы, а не к 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. Если вы измените зависимость после установки своего расширения, вам, вероятно, потребуется удалить и снова установить его в диспетчере расширений.

+0

Спасибо за ответ, когда я добавлю конфигурацию в ext_tables.php, будет отображаться поле, но в Confifuration/TCA/Overrides/sys_file_reference.php нет. Я знаю почему. – user2917236