繁体   English   中英

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

[英]Drupal 7: Select theme depending on content-type

假设我有www.mycoolsite.com,并希望有一个子部分,例如www.mycoolsite.com/hino(是的,汽车销售中有一个装卡车的小节)。
实际上,这里的丑陋事实分为2:

  1. 我几乎是一个总的n00b Drupal开发人员。
  2. / hino子节必须具有不同的布局(不同的主题)。

现在,我创建(即复制粘贴,重命名并成功激活)另一个我已经拥有的主题。 这两个主题现在都处于活动状态。

实际上,当前有3个主题处于活动状态,而后者则为活动主题:台式机设备的常规主题,移动设备的常规主题和Hino主题(尚不适用于台式机设备;稍后将需要Hino / Mobile的要求)。

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

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

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

注意事项

  1. 甚至page.tpl包装器(以及内部的菜单和菜单元素)也必须不同。 这就是为什么我需要这个而不是仅仅创建node--modelos-hino.tpl文件。
  2. 不能为/ hino单独安装Drupal。

基于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';
      }
    }
  }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM