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

Syb*_*ers 3 typo3

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

AFAIK,在TYPO3 后端创建新的自定义内容元素和插件时,有 3 个位置可以配置图标

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

在此输入图像描述

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

在此输入图像描述

Syb*_*ers 6

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

首先,注册一个图标标识符来引用您的图标,请参阅官方 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
  # ...
}
Run Code Online (Sandbox Code Playgroud)

TYPO3 文档:将内容元素添加到内容元素向导


2.CType/list_type选择列表:

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

Configuration/TCA/Overrides/tt_content.php:

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

TYPO3 文档:Extbase 插件注册

对于非 Extbase 插件,可以通过addPlugin传递图标。

对于内容元素,可以通过 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',
Run Code Online (Sandbox Code Playgroud)

TYPO3 文档:注册内容元素


3. 在页面布局视图中:

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

Configuration/TCA/Overrides/tt_content.php:

$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes'][$pluginname] = 'my-icon';
Run Code Online (Sandbox Code Playgroud)

TYPO3 文档:typeicon_classes

对于插件,页面布局视图中的图标已通过 registerPlugins 自动注册(自 TYPO3 v11.5.12 起)。