如何在 TYPO3 扩展中为内容元素或插件设置图标

How to setup icons for content elements or plugins in a TYPO3 extension

如何为内容元素和插件配置图标?是否有快捷方式可以只配置一次而不是在 3 个地方配置?

A​​FAIK,在 TYPO3 后端 中创建新的自定义内容元素和插件时,有 3 个地方可以配置 icons:

  1. 新建内容元素向导
  2. 当您编辑内容元素 (CE) 时,CType / list_type select 列表中的可见内容

  1. 页面布局视图中的可见内容

我不知道有什么捷径,我就是这样做的。

首先,注册一个图标标识符以引用您的图标,请参阅官方 TYPO3 文档:Icon API > Registration

您可以注册例如 SVG 图标或 Font Awesome 图标。


接下来,确保在这 3 个地方正确配置了图标:

1.新内容元素 (CE) 向导

在TSconfig页面配置

例如(使用之前注册的图标标识符)

mod.wizards.newContentElement.wizardItems.common.show:=addToList(extkey_plugin)
mod.wizards.newContentElement.wizardItems.common.elements.extkey_plugin {
  iconIdentifier = my-icon
  # ...
}

TYPO3 文档:Add content elements to the Content Element Wizard


2。 CType / list_type select 列表:

对于 Extbase 插件,这是通过 registerPlugin(参数 4)配置的

Configuration/TCA/Overrides/tt_content.php:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'ExtkeyInCamelCase', 
    'PluginIdentifier', 
    'plugin title', 
    // icon 
    'my-icon');

TYPO3 文档:Extbase Plugin registration

对于内容元素,可以通过 TCA 配置:

Configuration/TCA/Overrides/tt_content.php:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
'tt_content',
'CType',
[
    'Title',
    // plugin signature: extkey_identifier
    'myext_plugin',
    // icon identifier
    'my-icon',

TYPO3 文档:Register the content element


3。在页面布局视图中:

对于内容元素,您可以在TCA中设置:

Configuration/TCA/Overrides/tt_content.php:

$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes'][$pluginname] = 'my-icon';

TYPO3 文档:typeicon_classes

据我所知,无法为插件更改此设置,使用默认插件图标。但是您可以在插件内容中添加一个图标,以使用钩子在页面布局视图中显示,例如查看 news 或 calendarize extension 的例子,在

中添加你的功能

ext_localconf.php:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['list_type_Info']['extkey_plugin']['extkey'] =
  \Vendor\Extkey\Hooks\PageLayoutView::class . '->getExtensionSummary';

自定义: