在Drupal 7中,我创建了一个子主题,如何将该主题分配给特定页面?_

时间:2011-03-08 20:13:14

标签: drupal themes drupal-7

所以我在Drupal 7中启用了我的父主题和子主题。

我在subtheme的.info中指定基本主题是父主题。

创建页面后,如何告诉该页面继承我的子主题?

非常感谢任何帮助。

修改: 所以我想做的是创建几个新页面(大约20个),这些页面将跟我的Drupal站点的其余部分一样遵循相同的模板文件。但是,它们都将具有不同的背景图像,链接颜色和标题样式。我认为Drupal子主题会让我创建一个继承主样式表的页面,但是我可以根据新页面的需要对其进行修改。听起来这不是子主题的用途。

感谢Matt V: 子主题允许您使用现有主题作为创建自定义主题的起点。

4 个答案:

答案 0 :(得分:2)

要激活子主题,您需要启用它并将其设置为默认值。

副主题(或任何主题)是针对整个网站的。要为单个页面设置主题,您可以为该特定页面创建模板,或使用Panels模块 - 有很多方法可以在drupal中为猫设置皮肤.....

这里有更多信息Drupal 7 theme system changes

答案 1 :(得分:2)

我可能错了,但如果你想在不同的页面上实现不同的主题,听起来就像你想要的那样是“hook_custom_theme”,它非常直接,基本上你只是添加:

function mymodule_custom_theme(){
  //Some custom logic here
  $node=node_load(arg(1));
  if($node && $node->type=="my_custom_type"){
    return 'my_custom_theme';
  }
}

您的返回值必须是一个字符串,该字符串等于您要切换到的主题的机器可读名称...

重新阅读你的帖子,你可能想查看template_preprocess_html和template_preprocess_page函数。在这些函数中,您可以设置和更改模板变量,即

$vars['styles']=drupal_get_css();

一旦你完成了,你可以用一点点逻辑轻松换掉css标签,这个方法只允许你用一个主题和多个css文件......

答案 2 :(得分:2)

通过使用 themekey 模块,您可以实现此目标

参考http://drupal.org/project/themekey

答案 3 :(得分:1)

要让您的主题在网站范围内激活并用作所有网页的默认主题,您需要进入管理/外观并激活主题,然后点击“定义为默认”主题旁边的链接。

要在一个特定页面上使用您的主题,这样做有点棘手,只需澄清这是否是您真正想要的。