如何在 TYPO3 扩展中为内容元素或插件设置图标
How to setup icons for content elements or plugins in a TYPO3 extension
如何为内容元素和插件配置图标?是否有快捷方式可以只配置一次而不是在 3 个地方配置?
AFAIK,在 TYPO3 后端 中创建新的自定义内容元素和插件时,有 3 个地方可以配置 icons:
- 新建内容元素向导
- 当您编辑内容元素 (CE) 时,CType / list_type select 列表中的可见内容
- 页面布局视图中的可见内容
我不知道有什么捷径,我就是这样做的。
首先,注册一个图标标识符以引用您的图标,请参阅官方 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';
自定义:
如何为内容元素和插件配置图标?是否有快捷方式可以只配置一次而不是在 3 个地方配置?
AFAIK,在 TYPO3 后端 中创建新的自定义内容元素和插件时,有 3 个地方可以配置 icons:
- 新建内容元素向导
- 当您编辑内容元素 (CE) 时,CType / list_type select 列表中的可见内容
- 页面布局视图中的可见内容
我不知道有什么捷径,我就是这样做的。
首先,注册一个图标标识符以引用您的图标,请参阅官方 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';
自定义: