如何在模板之间共享内容属性

How can I share content-properties between templates

我有不同的模板。

它们共享一些属性,例如文本编辑器及其设置。

<property name="article" type="text_editor">
    <meta>
        <title lang="de">Inhalt</title>
        <title lang="en">Content</title>
    </meta>
    <params>
        <param name="table" value="true"/>
        <param name="link" value="true"/>
        <param name="paste_from_word" value="true"/>
        <param name="height" value="200"/>
        <param name="max_height" value="2000"/>
        <!-- CKEditor Parameters examples: -->
        <param name="extra_allowed_content" value="img(*)[*]; span(*)[*]; div(*)[*]; iframe(*)[*]; script(*)[*]" />
    </params>
</property>

我不想复制配置而是从某处 link 复制配置? 我在 Sulu-Docs 中没有找到任何关于它的信息,但我确信有解决方案。

我不知道 Sulu 工具,但在 symfony 中,如果你想在 twig 模板中分解代码,你可以使用 宏 twigTwig macro doc

  1. 创建一个 twig 格式的宏文件
  2. 在您的模板特定页面中导入宏文件
  3. 在您的宏文件中使用宏并调用宏名称(不是文件而是内部宏名称文件)

有了这个你也可以调用带参数的函数宏。对于生成的每个页面,调用这个具有几个不同方面的宏来生成这个分解代码的几个不同部分。

我们已经在考虑某种导入功能,但我们还没有实现它,而且它的优先级不是最高的,并且会使某些事情变得有点复杂。

但在那之前您可以做的是从 TextEditor Content Type 继承,将您的默认值放在那里,将其注册为新的内容类型,然后改用这个。那么你至少可以节省一直输入参数的时间。

如果您愿意,您也可以使用 Symfony 的 Bundle Inheritance feature