基于节点类型使用不同的drupal页面模板

可以在你的template.php文件中修改一个模板的“模板建议”("template suggestions")列表。下面的代码片断,将根据当前页面的节点类型来添加页面模板建议。这样,你就可以为节点类型为新闻(news)的页面定义一个模板page-nodetype-news.tpl.php。

 

<?php
// Add additional template suggestions
function _phptemplate_variables($hook, $vars) {
  switch ($hook) {
    case 'page':  
      // Add page template suggestions based on node type, if we aren't editing the node.
      if ($vars['node'] && arg(2) != 'edit') {
        $vars['template_files'][] = 'page-nodetype-'. $vars['node']->type;
      }
      break;
  }
  return $vars;
}
?>

 

如果你使用的drupal主题为Zen的话,打开你的子主题的template.php文件,将SUBTHEME_preprocess_page()函数的注释去掉,并向其中添加以下代码(没有<?php 和?>标签):

<?php
  // Add page template suggestions based on node type, if we aren't editing the node.
  if ($vars['node'] && arg(2) != 'edit') {
    $vars['template_files'][] = 'page-nodetype-'. $vars['node']->type;
  }
?>

 

 相关链接:http://drupal.org/node/249726 , Think in Drupal

Drupal版本: