【问题标题】:How to set Drupal 8 Theme Variables on the fly?如何动态设置 Drupal 8 主题变量?
【发布时间】:2017-03-14 19:04:47
【问题描述】:

我会尝试更好地解释这个问题...我正在从经典中创建一个子主题。我想要一种通过某种 UI 将变量传递到我的主题的方法。我对 Drupal 8(和一般的 Drupal 开发)非常陌生,所以如果您需要更多信息,请告诉我。

作为记录,我知道 Drupal 中的预处理功能,但是我正在谈论的变量最初不会在那里设置...

例如...假设我从称为基本页面的内容类型创建了一个新节点。我想要一种方法,当我创建一个新的基本页面时,有诸如“列数;字体系列;配色方案;等等”之类的选项,我可以在每页的基础上定义这些选项。然后......在我的主题中,我可以动态查看为当前页面设置的值并相应地呈现它。我来自 ColdFusion 背景,拥有诸如 request.page 变量之类的东西......所以这对我来说是全新的。

编辑:我意识到我可以只向内容类型添加字段,但有人告诉我,向内容类型添加元数据字段而不是内容类型的实际相关数据是一种不好的做法。

感谢您的任何帮助。

【问题讨论】:

    标签: drupal drupal-8 drupal-theming


    【解决方案1】:

    我会研究Paragraphs 模块。在 UI 中进行设计时,这将为您提供很大的灵活性。

    Bootstrap Paragraphs 捆绑包是另一个不错的选择,因为它带有预先定义的段落(包括列、手风琴等)。您还可以轻松地为配色方案、字体系列等添加字段,然后在模板中只需包装正确的类即可。

    【讨论】:

      【解决方案2】:

      另一个选项是Panelizer 模块。比Paragraphs 模块复杂一点,但在Drupal 8 中,由于页面本身的实时拖放功能,对用户更加友好(对最终用户)。 Paragraphs 在编辑表单上提供拖放功能。

      另一个选项是自定义模块,它定义了config form。也许还可以创建一个包含节点包(您的内容类型名称)、键和值的字段类型。然后使用预处理钩子来获取这个配置值并在你的模板中使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-28
        • 2013-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多