d3m/sce

为 TYPO3 创建简单内容元素

安装: 3

依赖: 0

建议: 0

安全: 0

星标: 1

关注者: 1

分支: 2

开放问题: 2

类型:typo3-cms-extension

dev-master 2023-08-25 13:49 UTC

This package is auto-updated.

Last update: 2024-09-25 16:14:22 UTC


README

网页可以被视为由三个元素组成:构建结构的网格(部分或列)、包含多个卡片并通常非常简单的容器内容元素(如带有标题和文本的文本元素)。其中一些内容元素可能具有相同的字段,但在不同的上下文中表现不同,例如,文本元素可以渲染为“普通”文本或卡片容器中的卡片。

此扩展的想法是提供一个简单的方法从头开始构建内容元素,这些内容元素易于集成者配置,也易于编辑者使用。而不是在内容元素本身中使用多个布局选项来使其适应特定的上下文,此扩展的建议是,根据网页中的上下文数量构建相应数量的内容元素。通过主要使用 tt_content 表的默认字段,可以在数据库中轻松地将内容类型批量从 TYPO3 默认内容类型切换到站点包特定内容类型,反之亦然。

本文档介绍了如何使用此扩展创建和配置简单内容元素。如果您想了解如何创建上下文并限制内容元素的使用范围,我建议阅读以下文档

安装

通过 composer require d3m/sce 安装此扩展,或从 TYPO3 扩展存储库(扩展名称为 "sce")下载,然后在您的 TYPO3 安装扩展管理器中激活扩展。安装完成后,将自定义简单内容元素添加到您的站点扩展中(见“添加您自己的简单内容元素”)。

添加您自己的简单内容元素

  • 前往您的站点包扩展
  • 通过在 Configuration/TCA/Overrides/ 中添加配置文件来注册您的简单内容元素(例如 site-package-text.php)
  • 添加前端渲染的 TypoScript 和 Fluid 模板
  • 在 Resources/Public/Icons 中添加图标(例如 SitePackageText.svg)

简单内容元素的注册

以下是一个创建具有标题的文本元素的示例。该元素通过其 CType、名称、描述和数组形式的字段配置进行注册。

\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\D3M\Sce\Tca\Registry::class)-> configureSce(
    (
        new \D3M\Sce\Tca\SceConfiguration(
            'site-package-text', // CType of the simple content element
            'Site Package Text', // Name of the simple content element
            'Insert an element with text and header', // Description for the simple content element
            [
                'header' => [
                    'label' => 'Simple Text Header',
                    'columnOverrides' => [
                        'eval' => 'required,trim',
                    ],
                ],
                'header_layout' => [
                    'columnOverrides' => [
                        'eval' => 'required',
                    ],
                ],
                'bodytext' => [
                    'columnOverrides' => [
                        'enableRichtext' => true,
                        'eval' => 'required,trim',
                    ],
                ],
            ]
        )
    )
);

字段配置

SceConfiguration 对象的附加方法

TypoScript

tt_content.site-package-text =< lib.contentElement
tt_content.site-package-text {
    templateName = SitePackageText
    variables < temp.variables
}

模板

<f:render partial="Header/All" arguments="{_all}" />
<f:format.html>{data.bodytext}</f:format.html>

要找出可用的变量,您可以在模板中添加 <f:debug>{_all}</f:debug>

待办事项

  • 添加后端渲染的配置
  • 添加用于批量更改内容元素 CType 的后端模块,例如从 TYPO3 默认内容类型切换到站点包特定内容类型,反之亦然

致谢

此扩展由 Jan-Philipp Halle(dot3media)于 2020 年创建。
初始实现主要基于由 b13 GmbH 开发的 container 扩展