Drupal 7:根据内容类型选择主题

时间:2014-03-20 20:32:27

标签: drupal drupal-7 themes

假设我有www.mycoolsite.com,并希望有一个像www.mycoolsite.com/hino这样的子栏目(是的,带有卡车分段的汽车销售)。
实际上,这里丑陋的事实分为2:

  1. 我几乎完全是 n00b Drupal开发者。
  2. / hino子部分必须具有不同的布局(不同的主题)。
  3. 现在我创建了(即复制粘贴,重命名和成功激活)我已经拥有的另一个主题。这两个主题现在都很活跃。

    实际上,目前有3个主题是活跃的,计算后者:桌面设备的普通主题,移动设备的普通主题和日野主题(对于桌面设备尚未实现;对日野/移动设备的要求将在以后出现)。

    目前,除非移动设备连接,否则所选主题为普通/桌面,在这种情况下,主题会自动切换为普通/移动。但这要归功于设备检测器。

    我需要的是在对我认为它必须属于新内容类型的节点发出请求时呈现完全不同的主题(即新的Hino / Desktop主题)必须创造。

    所以,我在这里的问题:如何创建新的内容类型并为其指定另一个主题?例如“modelos”content-type应呈现Normal主题,但“modelos-hino”(具有不同字段的新内容类型)应呈现Hino主题。

    备注

    1. 甚至page.tpl包装器(以及里面的菜单和菜单元素)也必须不同。这就是我需要这个而不仅仅是创建node - modelos-hino.tpl文件的原因。
    2. 为/ hino安装单独的Drupal不是一种选择。

1 个答案:

答案 0 :(得分:1)

基于http://drupal.org/node/224333#custom_theme 您可以创建自定义模块并使用hook_custom_theme加载节点,检查其类型并从那里触发新主题。类似的东西:

<?php 
/**
* Implements hook_custom_theme().
*/
  function mymodule_custom_theme() {
    if (arg(0)=='node' && is_int(arg(1))) {
      $node = node_load(arg(1));
      if ($node->type == 'modelos-hino') {
        return 'Hino';
      }
    }
  }
?>