typo3-contentblocks / contentblocks-reg-api
此API提供了一个简单且可靠的方式来将内容块注册为独立的软件包。
Requires
- php: ^7.2 || ^8.0
- ext-json: *
- typo3-contentblocks/composer-plugin: ^2.0
- typo3/cms-core: ^10.4 || ^11.5
- typo3/cms-filelist: ^10.4 || ^11.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0.0
- helhum/typo3-console: ^6.6 || ^7.0
- rector/rector: ^0.12.19
- roave/security-advisories: dev-master
- typo3-contentblocks/call-to-action-local: @dev
- typo3-contentblocks/counter-local: @dev
- typo3-contentblocks/example-local: @dev
- typo3-contentblocks/fluid-styled-content-example-local: @dev
- typo3-contentblocks/slider-local: @dev
- typo3/cms-about: ^10.4 || ^11.5
- typo3/cms-adminpanel: ^10.4 || ^11.5
- typo3/cms-backend: ^10.4 || ^11.5
- typo3/cms-belog: ^10.4 || ^11.5
- typo3/cms-beuser: ^10.4 || ^11.5
- typo3/cms-dashboard: ^10.4 || ^11.5
- typo3/cms-extbase: ^10.4 || ^11.5
- typo3/cms-extensionmanager: ^10.4 || ^11.5
- typo3/cms-felogin: ^10.4 || ^11.5
- typo3/cms-filemetadata: ^10.4 || ^11.5
- typo3/cms-fluid: ^10.4 || ^11.5
- typo3/cms-fluid-styled-content: ^10.4 || ^11.5
- typo3/cms-form: ^10.4 || ^11.5
- typo3/cms-frontend: ^10.4 || ^11.5
- typo3/cms-impexp: ^10.4 || ^11.5
- typo3/cms-indexed-search: ^10.4 || ^11.5
- typo3/cms-info: ^10.4 || ^11.5
- typo3/cms-install: ^10.4 || ^11.5
- typo3/cms-linkvalidator: ^10.4 || ^11.5
- typo3/cms-lowlevel: ^10.4 || ^11.5
- typo3/cms-opendocs: ^10.4 || ^11.5
- typo3/cms-recordlist: ^10.4 || ^11.5
- typo3/cms-recycler: ^10.4 || ^11.5
- typo3/cms-redirects: ^10.4 || ^11.5
- typo3/cms-reports: ^10.4 || ^11.5
- typo3/cms-rte-ckeditor: ^10.4 || ^11.5
- typo3/cms-scheduler: ^10.4 || ^11.5
- typo3/cms-seo: ^10.4 || ^11.5
- typo3/cms-setup: ^10.4 || ^11.5
- typo3/cms-sys-note: ^10.4 || ^11.5
- typo3/cms-t3editor: ^10.4 || ^11.5
- typo3/cms-tstemplate: ^10.4 || ^11.5
- typo3/cms-viewpage: ^10.4 || ^11.5
- typo3/cms-workspaces: ^10.4 || ^11.5
- typo3/coding-standards: ^0.4.0
- typo3/tailor: ^1.3
- typo3/testing-framework: ^6.4
README
内容块注册API
⚠️ 注意:这是TYPO3 v11的API ⚠️
对于 TYPO3 v12,您可以在以下位置找到GitHub仓库或在TER。
简介
此API提供了一个简单且可靠的方式来注册内容块(composer软件包)。遵循此README以快速了解入门概述。您可以在本存储库内部找到完整的文档。
状态
beta
- 主要概念已经建立,数据存储方法重构并测试。我们欢迎您的反馈。您可以在TYPO3 Slack的#cig-structuredcontent
中联系我们 ❤️。
安装
在开发此API时
这将设置一个带有ddev和安装API扩展的TYPO3 v10。
要求
- ddev
- 克隆此存储库
- 运行
ddev launch /typo3
TYPO3后端用户是 "admin",密码 "adminadmin"。
它包括本地composer存储库中的示例内容块,默认安装。
使用内容块
要求
- TYPO3 v10+
- 在TYPO3 v10中,后端预览需要启用基于Fluid的页面模块。
使用内容块所需的API由2个composer软件包组成:一个API扩展和一个composer插件。
安装步骤
composer req typo3-contentblocks/contentblocks-reg-api
- 激活扩展
contentblocks_reg_api
- 添加新数据库字段:(后端)
维护
›分析数据库结构
获取/创建新的内容块
通过composer
composer req typo3-contentblocks/call-to-action:dev-master
对于在您的项目中使用自定义内容块,我们建议使用本地的 "路径" composer存储库。
向导
有一个向导模块可以为您启动内容块。
在本地创建它们
您还可以手动将内容块目录添加到 typo3conf/contentBlocks
。
使用方法
内容块注册过程中发生的过程
检测内容块
内容块的检测取决于composer包类型。然后自定义composer安装器检索所有类型为 typo3-contentblock
的包。
验证
以下方面对于内容块成功验证是强制性的
- 内容块根目录中必须存在名为 "ContentBlockIcon" 的图标,且类型为SVG/PNG/GIF
- 必须存在文件
EditorInterface.yaml
,并且是有效的 - 后端语言文件
Default.xml
或EditorInterface.xlf
必须存在于包的src/Language
文件夹中。 - 文件
EditorPreview.html
必须存在于包的src
文件夹中。
位置
内容块存储在或软链接到 typo3conf/contentBlocks/
。
虚拟生成 TCA
TCA 是从实现内容块字段类型的类中虚拟生成的。
生成 FlexForm
基于在 EditorInterface.yaml
中定义的字段,生成内容块编辑界面的 FlexForm 并存储在 tt_content.content_block
。
注册内容块
- 注册图标
- 在 CTypes 列表中添加 TCA 条目,包括图标
- 将内容块添加到 NewContentElementWizard
- 添加用于渲染内容插件的 TypoScript
- 为内容块添加 PageTS
扩展配置
出于某种原因,可能需要从您的自定义定义继承内容块。例如,如果您想从 lib.contentElement 继承内容块,在这种情况下,您可以按需扩展默认的 TypoScript。这是默认代码:
lib.contentBlock = FLUIDTEMPLATE lib.contentBlock { layoutRootPaths { -5 = EXT:contentblocks_reg_api/Resources/Private/Layouts/ } partialRootPaths { 0 = EXT:contentblocks_reg_api/Resources/Private/Partials/ } dataProcessing { 10 = Typo3Contentblocks\ContentblocksRegApi\DataProcessing\CbProcessor 20 = Typo3Contentblocks\ContentblocksRegApi\DataProcessing\FlexFormProcessor } }
注意:如果您更改代码,您负责确保代码正常工作。注意数据处理。没有这些,您的内容块将无法工作。
您可以通过安装工具中的扩展设置注入您的代码。在那里,您可以设置默认的 TypoScript 到您的特定文件,如 EXT:sitepackage/Configuration/TypoScript/contentBlock.typoscript
。
扩展配置的第二件事是在外观部分启用框架调色板。如果您使用 fluid_styled_content 或 bootstrap_package,这可能是一个有用的功能。