Drupal:基于节点改变颜色方案

时间:2010-08-13 13:42:44

标签: drupal color-scheme

网页设计师为我们的Drupal网站创建了一个设计,该网站需要为网站的各个部分提供不同的配色方案。 Drupal默认不支持此设计要求。

目前我正在使用JavaScript根据页面标题更改颜色方案。在添加了一些内容页面之后,我现在意识到这是一种糟糕的做事方式。我需要一些想法,以便根据内容更好地改变配色方案。

有没有办法根据节点值将不同的主题应用于页面?我可以为每种配色方案创建一个略微变化的主题,但这会使主题维护变得更加困难。

我还考虑过使用CCK向我的页面内容类型添加字段,然后根据该自定义字段更改颜色方案。这样就无需为每个新页面添加代码到我的JavaScript中。

或者是否有用于更改每页颜色方案的模块?

4 个答案:

答案 0 :(得分:2)

您可能需要查看ThemeKey module,它允许您根据节点类型或路径等条件确定使用哪个主题。

答案 1 :(得分:1)

您可以根据节点或其他条件在hook_preprocess_page函数中添加一些css,并将页面模板中的css添加为嵌入样式。

这个想法与在JavaScript中做的一样,但你可以使用php,drupal等来做你需要的事情。它应该更容易,因为您可以测试节点类型或您在节点对象上设置的值。

答案 2 :(得分:0)

CSS module执行特定于节点的CSS,因此您可以使用它来调整颜色。

答案 3 :(得分:0)

我建议在主题中实现hook_preprocess_page,并根据显示的节点类型(或类型)应用body类。或者,可能将这些类放在节点的预处理中以供显示。因此,例如,如果您正在查看“项目”节点,请输入:

<body class="... node-type-project">...

然后设计师可以根据身体所具有的类来定位样式。这很容易实现自动化,只需执行"node-type-". strreplace("_", "-", $node->type)即可将任何未来的节点类型更改为类,然后将其提供给正文或节点。