remind / headless
REMIND - Headless
Requires
- php: ^8.2
- friendsoftypo3/headless: ^4.2
- ichhabrecht/content-defender: ^3.4
- typo3/cms-core: ^12.4
Requires (Dev)
- apache-solr-for-typo3/solr: ^12.0
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-09-25 09:00:59 UTC
README
此扩展提供
- 基本内容元素
- 页面和tt_content(例如项目)的附加字段
- 扩展的flex表单处理器
- 图像处理中间件
- form_framework的基本配置
- 默认后端布局
安装
使用comoser通过 composer install remind/headless
安装扩展。在提供者扩展中导入typoscript。
将以下内容添加到您的站点配置中
headless: true
依赖
必需的依赖项是 headless 和 content-defender。后者用于默认后端布局。
后端布局
默认
默认布局由1列3行组成。除了主要内容(colPos = 0)外,还有一个列用于面包屑上方的内容(colPos = 1)和页脚(colPos = 10)。
使用 content defender 扩展仅允许在页脚列中恰好一个footer_content内容元素。页脚内容元素不能在其他列中使用。
TCA
tt_content
tx_headless_item
类型为inline的字段。基本上 tx_headless_item
类似于 tt_content,但没有 colPos
。用于 accordion
和 tabs
。查看这些定义之一了解如何使用项目并覆盖showitem定义。嵌套项目也是可能的,但flexform目前仅适用于顶级项目。
要将flexform添加到项目,请将以下配置添加到 TCA/Overrides/tx_headless_item.php
$GLOBALS['TCA']['tx_headless_item']['columns']['flexform']['config']['ds']['<tt_content CType>'] = '<Path to flexform xml file>';
必须将 flexform
列添加到相应tt_content类型的 showitem
中。例如,要将flexform添加到accordion类型,以下必须包含flexform列
$GLOBALS['TCA']['tt_content']['types']['accordion']['columnsOverrides']['tx_headless_item']['config']['overrideChildTca']['types']['0']['showitem']
要在前端输出flexform数据,必须将flexform字段添加到内容元素的typoscript中。例如,修改后的 Accordion.typoscript
lib.accordionItems =< lib.items
lib.accordionItems {
dataProcessing {
10 {
fields {
flexform {
dataProcessing {
10 = Remind\Headless\DataProcessing\FlexFormProcessor
10 {
fieldName = flexform
as = flexform
}
}
}
}
}
}
}
tt_content.accordion =< lib.contentElementWithHeader
tt_content.accordion {
fields {
content {
fields {
items =< lib.accordionItems
}
}
}
}
header_layout
文本、H1-H6和隐藏的值。
tx_headless_background_color
所有内容元素的背景颜色。默认情况下仅存在 none
选项。通过使用 columnOverrides
为每个内容元素添加选项
'columnsOverrides' => [ 'tx_headless_background_color' => [ 'config' => [ 'items' => [ 1 => [ 'label' => 'Custom Color', 'value' => 'custom', ], ], ], ], ],
tx_headless_background_full_width
仅在 tx_headless_background_color
不是 none
时可见。用于将背景颜色扩展到全宽而不是仅内容容器。
tx_headless_space_before_inside
添加到 space_before
。内容元素之前的空间,但位于背景颜色内。仅当 tx_headless_background_color
不是 none
时才可用。
tx_headless_space_after_inside
类似于 space_before_inside
。
pages
tx_headless_overview_label
在页面TCA中添加了一个 tx_headless_overview_label
字段。该字段应用于自定义概述页的标签。
裁剪变体
ImageProcessingMiddleware
接受一个breakpoint作为查询参数,并使用该名称的裁剪变体。必须为内容元素创建适当的比例变体。
为sm、md和lg断点创建 textpic
裁剪变体的示例
$GLOBALS['TCA']['tt_content']['types']['textpic']['columnsOverrides']['image']['config']['overrideChildTca']['columns']['crop']['config'] = [ 'cropVariants' => [ 'sm' => [ // configuration ], 'md' => [ // configuration ], 'lg' => [ // configuration ], ], ];
为sm、md和lg断点创建 accordion
项裁剪变体的示例
$GLOBALS['TCA']['tt_content']['types']['accordion']['columnsOverrides']['tx_headless_item']['config']['overrideChildTca']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config'] = [ 'cropVariants' => [ 'sm' => [ // configuration ], 'md' => [ // configuration ], 'lg' => [ // configuration ], ], ];
内容元素
accordion
使用 tx_headless_item
,项目由文本(标题、副标题、正文、标题)、flexform字段和图片组成。
页脚内容
基本定义,没有实际内容字段。在您的提供者扩展中添加flexform以使用 footer_content
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( '*', 'FILE:EXT:provider_extension/Configuration/FlexForms/FooterContent.xml', 'footer_content' );
标签页
使用 tx_headless_item
,项目只包含文本(标题、副标题、正文)。