namelesscoder / patternlab-fluid-typo3-export
Pattern Lab Fluid Edition的TYPO3 CMS扩展资产导出集成
This package is auto-updated.
Last update: 2024-08-27 22:28:46 UTC
README
将包集成到Pattern Lab Fluid Edition,以便将你的模式作为正确的TYPO3 CMS Fluid模板文件写入扩展文件夹,然后基本实现即插即用。
基本功能
将此包添加到Pattern Lab Fluid Edition意味着当你生成模板(无论是通过监视文件还是手动生成)时,你的文件将被复制并调整,以便它们适合TYPO3 CMS扩展的Resources
文件夹。
以下规则正在实施
- 原子被复制到
Resources/Private/Partials/Atoms
,你可以轻松地从任何模板中渲染。 - 分子被复制到
Resources/Private/Partials/Molecules
- 并且也是部分。 - 有机体被复制到
Resources/Private/Partials/Organisms
- 并且也是部分。 - 模板被复制到
Resources/Private/Templates/Default
- 仿真一个“默认控制器”来限定模板。 - 页面被复制到
Resources/Private/Templates/Page
- 仿真一个“页面控制器”来限定模板。
布局被特别处理和单独处理。如果你的模板
或页面
使用Fluid布局,则此布局也将被提取、重写并复制到Resources/Private/Layouts/
。
请注意,虽然Pattern Lab允许你将布局用于任何类型,从原子类型到布局,但布局在TYPO3 CMS中仅对模板
和页面
类型有效。尽管它们被复制,但它们仍然包含布局引用,并且很可能只能通过渲染特定部分来呈现。这意味着为了呈现一个在Pattern Lab中使用布局的原子、分子或有机体,在几乎所有情况下,你都必须使用具有section
和partial
参数的f:render
!此包不在此情况下更正渲染语句;尽管这可能在将来作为功能添加。
定义导出目标文件夹
安装后,你可以编辑Pattern Lab Fluid Edition的config/config.yml
文件以添加
fluidTYPO3ExtensionExportPath: /path/to/my_extension
定义指向扩展文件夹根目录的目标路径。其余的,例如Resources/Private
,是隐含的。
如果没有这个参数,尝试生成模板将触发异常,提示你添加配置选项。
使用导出的TYPO3 CMS模板
一旦模板被导出,你如何渲染它们将主要取决于你首选的集成方法(无论是作为控制器操作模板,作为FLUIDTEMPLATE
对象或其他),但有一些提示可以帮助你实现最透明的集成
- 将模板生成到仅具有此单一职责的扩展中,携带模板文件,这意味着你可以添加此扩展的路径到其他扩展的路径中 - 例如客户特定的扩展。
- 或者,将模板生成到包含其他模板文件的扩展中是可能的,但应该小心进行,以避免覆盖任何手动添加的部分。如果你是这种情况,请考虑为手动添加的模板使用一组单独的文件夹。
- 导出的模板也可以用作内容类型,几乎不需要做任何调整:例如,
Fluid样式内容
允许您使用TypoScript覆盖模板。您可以利用这一点,例如让Pattern Lab为模板
模式类型生成核心内容类型模板。 - 将模板集成到系统中最安全的方法始终是预先处理模板中使用的所有变量,以确保您的变量与模式关联的JSON虚拟数据的结构完全匹配。这种方法在修改生成的模板方面需要付出绝对最小的努力。
限制/未来功能
- 不会生成扩展描述文件,必须在加载扩展之前手动创建。
- Pattern Lab JSON数据不会复制,但可以手动复制并指定为虚拟数据,直到有真实数据为止。未来的版本可能会为您创建虚拟TypoScript并修正对变量的引用。
- 导出逻辑将无差别地覆盖任何现有文件;未来的版本可能会配置为询问或选择性地覆盖一些模板。
- 关于配置(TypoScript、全局配置等)目前没有任何内容,必须手动创建。
- 尽管PatternLab支持将ViewHelpers写入版次的源文件中,但这些类当前并未导出 - 未来的版本很可能开始为您执行此操作。在此期间,请将类复制到您选择的扩展中,并使用
plio
命名空间名称注册该扩展的ViewHelper类文件夹。
致谢
这项工作得到了Busy Noggin的慷慨赞助。