remind/headless

REMIND - Headless

安装: 510

依赖: 4

建议: 1

安全: 0

星星: 1

关注者: 0

分支: 1

公开问题: 1

类型:typo3-cms-extension

v3.3.0 2024-05-21 06:25 UTC

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

依赖

必需的依赖项是 headlesscontent-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。用于 accordiontabs。查看这些定义之一了解如何使用项目并覆盖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,项目只包含文本(标题、副标题、正文)。