如何在页面模块列表视图中将图标添加到自己的ctype

How to add an Icon to own ctype in Page-Module List-View

在 TYPO3 7.6 中,我使用新的 CType 创建了一个新的内容元素。

我从图标工厂(内容引用)中选择了一个图标。

我设法将此图标包含到新元素向导中

mod.wizards.newContentElement.wizardItems.common.elements.myOwnCtype.iconIdentifier = content-quote

中编辑内容元素时,我设法将图标包含在下拉字段 "type" 中
$GLOBALS['TCA']['tt_content']['columns']['CType']['config']['items'][]

但是必须有第三个地方来定义ctypes的图标:

当我打开 Web->Page 时,我可以预览此页面上的所有内容元素。

每个内容元素的顶部都有一个灰色条,左下角有一个与其 ctype 对应的图标。在我的案例中,这仍然显示标准图标。

我该如何更改?

您可以将此代码放入您的 EXT:my_extension/Configuration/TCA/Overrides/tt_content.php 以在后端预览 header 中为您自己的 CType 设置图标。

$originalTtContent = $GLOBALS['TCA']['tt_content'];
$overridesForTtContent = [
  'ctrl' => [
    'typeicon_classes' => [
        'your_CType' => 'your_icon',
        'your_CType' => 'your_icon',
        'your_CType' => 'your_icon',
    ]
  ]
];
$GLOBALS['TCA']['tt_content'] = array_merge_recursive($originalTtContent, $overridesForTtContent);

假设默认设置为

$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_column'] => 'CType';

在 ext_tables.php

中注册您的图标
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class)->registerIcon(
    'mimetypes-x-content-myctype',
    \TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider::class,
    ['source' => 'EXT:myextension/Resources/Public/Images/mimetypes-x-content-myctype.png']
);

将您的图标添加到 typeicon_classes

$GLOBALS['TCA']['tt_content']['ctrl']['typeicon_classes']['myctype'] => 'mimetypes-x-content-myctype';

其中 'myctype' 的语法必须匹配您自己的 CType,在

中给出
$GLOBALS['TCA']['tt_content']['types']...