codeq/simpletemplate

此简单模板会根据Neos的最佳实践自动解析文件路径。

v1.0.1 2018-06-20 17:48 UTC

This package is auto-updated.

Last update: 2024-09-08 07:11:16 UTC


README

您再也不需要手动定义Fluid文件的模板路径了。简单模板会根据Neos最佳实践自动设置文件夹路径。

用法

  1. 使用composer require codeq/unicodenormalizer安装

  2. 您的节点类型将自动使用新的模板,自动映射的示例如下。

  3. 要在您的Fusion组件中使用自动映射,原型需要基于SimpleTemplate

    prototype(Example.Site:Component.Footer) < prototype(CodeQ.SimpleTemplate:Template) {
      ...
    }
    

文件夹和文件命名的最佳实践

节点类型

  1. 每个节点类型的配置都有自己的文件:Configuration/NodeTypes.<Document/Content>.<NodeType Name>.yaml

  2. 每个节点类型都有自己的文件夹用于渲染

    Resources/Private/Fusion/<Document/Content>/<NodeType Name>/
       <NodeType Name>.fusion 
       <NodeType Name>.html (optional)
    
  3. Fusion原型的名称是Example.Site:<Document/Content>.<NodeType Name>

子节点类型

一些节点类型仅允许在其他节点类型内部使用,例如,SliderItem总是Slider的子节点。为了更好地分组,您可以使用以下文件夹结构

  1. 每个子节点类型的配置都有自己的文件:Configuration/NodeTypes.<Document/Content>.<NodeType Name>.<Sub-NodeType Name>.yaml

  2. 每个子节点类型都有自己的文件夹用于渲染

    Resources/Private/Fusion/<Document/Content>/<NodeType Name>/<Sub-NodeType Name>/
       <Sub-NodeType Name>.fusion
       <Sub-NodeType Name>.html (optional)
    
  3. Fusion原型的名称是Example.Site:<Document/Content>.<NodeType Name>.<Sub-NodeType Name>

独立Fusion组件

组件是可以重复使用的Fusion(和Fluid)模块,可以在渲染不同节点类型时重复使用。一个组件包含一个Fusion和一个可选的Fluid文件。

  1. 每个组件在其文件夹内都有一个自己的文件夹

    Resources/Private/Fusion/Components/<Component Name>/
       <Component Name>.fusion 
       <Component Name>.html (optional)
    
  2. 每个Fluid组件必须继承自prototype(Example.Site:SimpleTemplate)

  3. Fusion原型的名称是Example.Site:Component.<Component Name>

所有这一切背后的主要思想是这个

与Fusion对象(Fusion原型、Fluid模板)相关的所有文件的位置应该始终可以从对象名称中推断出来。例如

Example.Site:Content.Slider   -> ../Private/Fusion/Content/Slider/Slider.fusion
                              -> ../Private/Fusion/Content/Slider/Slider.html
Example.Site:Component.Footer -> ../Private/Fusion/Component/Footer/Footer.fusion
                              -> ../Private/Fusion/Component/Footer/Footer.html

某些原型应提供可重复使用的功能,因此仅命名为组件。这些不应绑定到特定的节点类型。

如果您需要将一个大型的Fusion原型分解成几个较小的原型,您始终可以使用另一层命名空间分组它们,例如

Example.Site:Content.News                 -> ../Private/Fusion/Content/News/News.fusion
Example.Site:Content.News.RelatedArticles -> ../Private/Fusion/Content/News/RelatedArticles/RelatedArticles.fusion