Существует различие между типами элементов контента и плагинами в TYPO3.
Зарегистрированные плагины не будут показаны / доступны отдельно в селекторе типов элементов контента.Каждый зарегистрированный плагин доступен только как часть выбора типа элемента контента plugin
(list
).
Я полагаю, вы хотите добавить свой собственный новый элемент контента, а не элемент плагина типа.Тогда вы можете взглянуть на EXT: bootstrap_package от Бенджамина Котта, который содержит лучшие практики для такого варианта использования.
Например, приведенная ниже конфигурация TYPO3 TCA для TYPO3 8.7 и 9.5
- добавляетпользовательский элемент содержимого
newcontentelement
- назначает идентификатор значка
content-yourextensionkey-newcontentelement
, который должен быть зарегистрирован в ext_localconf.php
- , и настраивает поля для редакторов в бэкэнде (
showitem
)
EXT: your_extension_key / Configuration / TCA / Overrides / tt_content.php
// Add 'newcontentelement' to tt_content.CType selector list
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
'New content element', # Use localization 'LLL:EXT:your_extension_key/Resources/Private/Language/Backend.xlf:content_element.newcontentelement',
'newcontentelement',
'content-yourextensionkey-newcontentelement'
],
'--div--',
'after'
);
// Assign Icon for tt_content.CType 'newcontentelement'
$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes']['newcontentelement'] = 'content-yourextensionkey-newcontentelement';
// Configure content element type 'newcontentelement'
$GLOBALS['TCA']['tt_content']['types']['newcontentelement']['showitem'] = '
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.headers;headers,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.appearanceLinks;appearanceLinks,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
--palette--;;hidden,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,
categories,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,
rowDescription,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended,
';
Вам необходимо принять массив showitem
для ваших требований, чтобы включить поля элементов содержимого всерверная часть для редакторов.
Добавьте свой настроенный значок элемента контента в EXT:your_extension_key/Resources/Public/Icons
с именем fx mimetypes-x-content-newcontentelement.svg
EXT: your_extension_key / ext_localconf.php
// Register Icons
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
$iconRegistry->registerIcon(
'content-yourextensionkey-newcontentelement',
\TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
['source' => 'EXT:your_extension_key/Resources/Public/Icons/mimetypes-x-content-newcontentelement.svg']
);
Вы можете указать новый элемент содержимого в мастере для создания новых элементов содержимого.Добавьте конфигурацию ниже к вашей конфигурации страницы (pageTSConfig
):
mod.wizards {
newContentElement {
wizardItems {
special {
elements {
newcontentelement {
icon = EXT:your_extension_key/Resources/Public/Icons/mimetypes-x-content-newcontentelement.svg
title = LLL:EXT:your_extension_key/Resources/Private/Language/Backend.xlf:content_element.newcontentelement
description = LLL:EXT:your_extension_key/Resources/Private/Language/Backend.xlf:content_element.newcontentelement.description
tt_content_defValues {
CType = newcontentelement
}
}
}
show = *
}
}
}
}
mod.wizards.newContentElement.wizardItems.special.show := addToList(newcontentelement)