Добавить пользовательские элементы в TYPO3 как скрытые по умолчанию? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть установка с несколькими сайтами. У каждого сайта есть пакет сайта с настраиваемыми полями и элементами контента, характерными для этого сайта.

Но настраиваемые поля и элементы контента отображаются на всех сайтах.

В tt_content.php я добавляюпользовательский элемент в раскрывающемся списке типа. Как я могу сделать его скрытым, а затем включить его в настройках ts для дерева страниц, для которого оно используется?

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
    'tt_content',
    'CType',
    [
        'Banner',
        'my_extension_banner',
        'EXT:core/Resources/Public/Icons/T3Icons/content/content-image.svg'
    ],
    'textmedia',
    'after'
);

Аналогично, у меня есть некоторые настраиваемые поля, добавленные к существующим элементам. Как я могу сделать это поле скрытым, если оно специально не включено конфигурацией ts страницы, для которой оно создано?

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
    'tt_content',
    'headers',
    '--linebreak--,my_extension_myfield',
    'after:subheader'
);

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

После некоторых проб и ошибок я обнаружил, что могу удалить элементы и поля глобально, добавив это в мой ext_localconf.php:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('

    #Remove Custom Content Elements
    TCEFORM.tt_content.CType.removeItems := addToList(my_extension_banner)

    #Remove Custom Fields
    TCEFORM.tt_content {
        my_extension_myfield.disabled = 1
    }

');

Затем добавьте их снова с помощью файла конфигурации моей конкретной страницы ts config PageTSConfig.tsconfig

#Add Custom Content Elements
TCEFORM.tt_content.CType.removeItems := removeFromList(my_extension_banner)

#Add Custom Fields
TCEFORM.tt_content {
    my_extension_myfield.disabled = 0
}
0 голосов
/ 05 ноября 2019

Я не знаю, правильно ли я понимаю проблему, но вы можете поместить Page TsConfig в корневую страницу любой веб-страницы и затем скрыть соответствующие поля:

TCEFORM.pages {
   subtitle.disabled = 1
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...