我会试着更好地解释这个问题...我正在从classy创建一个子主题。我想有一种方式来传递变量到我的主题通过某种用户界面。我对Drupal8(以及一般的Drupal dev )非常陌生,所以如果您需要更多信息,请告诉我。
根据记录,我知道Drupal中的预处理函数,但是我所讨论的变量最初不会设置在那里……
例如..。假设我从名为basic page的内容类型创建了一个新节点。我想要一种方式,当我创建一个新的基本页面时,有诸如“列数;字体系列;配色方案等选项”,我可以在每个页面的基础上定义这些选项。然后..。在我的主题化中,我可以动态地查看为当前页面设置的值,并相应地呈现它。我有request.page变量之类的ColdFusion背景……所以这对我来说都是新的。
编辑:我意识到我可以只向内容类型添加字段,但有人告诉我,将字段添加到内容类型是元数据,而不是与内容类型相关的实际数据,这是一种糟糕的做法。
感谢所有可能的帮助。
发布于 2018-01-12 22:27:33
我会研究一下Paragraphs模块。当涉及到UI中的设计时,这将为您提供极大的灵活性。
Bootstrap Paragraphs包是另一个很好的选择,因为它自带了预定义的段落(包括列、折叠等)。您还可以轻松地添加配色方案,字体系列等字段,然后在模板中只需包装正确的类,您就可以开始工作了。
发布于 2018-01-14 20:35:03
另一个选择是Panelizer模块。比Paragraphs模块稍微复杂一些,但是在Drupal8中对用户更友好(对终端用户),因为页面本身具有实时的拖放特性。Paragraphs在编辑表单上提供了拖放功能。
另一个选项是自定义模块,它定义了一个config form。也可以创建一个字段类型,其中包含一个节点包(您的内容类型名称)、一个键和一个值。然后使用预处理钩子获取此配置值,并在模板中使用它。
https://stackoverflow.com/questions/42794492
复制相似问题