typo3 上带有 select 选项的新自定义内容元素

New custom content element on typo3 with a select option

我想创建一个内容元素,编辑者可以在其中选择一个图标显示在前端。

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
   'tt_content',
   'CType',
    [
        'LLL:EXT:your_extension_key/Resources/Private/Language/Tca.xlf:yourextensionkey_newcontentelement',
        'ServiceCE',
        'example-registration',
    ],
    'textmedia',
    'after'
);
$GLOBALS['TCA']['tt_content']['types']['ServiceCE'] = [
   'showitem' => '
      --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
         --palette--;;general,
            header; Header,
            bodytext;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:bodytext_formlabel,
   ',
];

我在 back-end 上创建布局以插入内容,只有一个 header 和一个正文。

会有很多可能的解决方案:

取决于图标是否应该分配给页面或内容元素使用 table pagestt_content

  1. 您的扩展程序将提供图标列表:
    为记录添加一个带有 select 图标列表的附加字段。将其放入 TCA (Configuration/TCA/Override/<table>.php)。确保该值是图标名称,这样您就不需要在 FLUID 中进行额外的替换。 将渲染添加到它所属的 FLUID 模板中。因为它应该随处可用,布局模板将是一个好地方。

  2. 使用sys_categories: 使用内置类别为任何记录提供图标。
    使用图标作为类别图像或使用另一个字段作为图标名称来创建一些类别。 (您甚至可以专门为图标名称添加另一个字段。)
    对于 pagestt_content 的呈现,添加数据处理器以获取数据记录的分配 sys_category 记录,然后呈现记录的 first/all 图标在布局模板中。