2010-08-13 56 views
1

网页设计师为我们的Drupal网站创建了一个设计,该网站需要该网站各个部分的不同颜色方案。 Drupal默认不支持这种设计要求。Drupal:根据节点更改颜色方案

当前我在使用JavaScript更改基于页面标题的配色方案。在添加了一些内容页面后,我现在意识到这是一种可怕的做事方式。我需要一些想法来根据内容改变颜色方案。

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

我也想过使用CCK将字段添加到我的页面内容类型,然后根据该自定义字段更改颜色方案。这将消除在每个新页面上为我的JavaScript添加代码的需要。

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

回答

2

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

+0

我将此标记为答案,但实际上我使用了Sections模块,因为这是页/节点的组织方式。 – rsrobbins 2010-08-15 18:33:43

1

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

这个想法与使用JavaScript做同样的想法,但你会有PHP,Drupal等可用来做你所需要的。由于您可以测试节点类型或您在节点对象上设置的值,因此应该会更容易。

0

CSS module做节点特定的CSS,所以你可以用它来调整颜色。

0

我会建议在您的主题中实现hook_preprocess_page,并根据显示的节点类型(或类型)应用主体类。或者,可能将这些类放入节点的预处理中进行显示。所以,举例来说,如果你正在观看的“项目”节点,提出:

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

然后,设计人员可以在此基础上阶级身上有目标的样式。这很容易实现自动化,只需执行"node-type-". strreplace("_", "-", $node->type)即可将任何未来的节点类型更改为类,然后将其输入到主体或节点中。