通过管理区域选择模板?

时间:2010-08-02 14:06:48

标签: drupal templates drupal-6 themes drupal-theming

到目前为止,我总是硬编码某个页面应该使用的页面模板,或者基于URL,或者是什么类型的节点。

如果有一种方法可以选择使用哪个tpl文件,那么真正有用的就是节点编辑表单。这将允许用户随意在不同的页面布局之间轻弹。

有没有人知道解决这个问题的好方法,或者解决它的问题?

3 个答案:

答案 0 :(得分:2)

ThemeKey将允许您根据路径或其他条件加载主题。您可以使用其他方法,例如利用template.php的preprocesser函数,并使用hook_form_alter将其挂钩,并提供一种切换文件的方法。

答案 1 :(得分:1)

我最后为模板文件添加了一个新的词汇表(在我的情况下,VID为2),然后将其转换到我的template.php中的页面预处理器中:

function phptemplate_preprocess_page(&$vars) {                                              

  if (count($vars[node]->taxonomy)>0) 
    foreach ($vars[node]->taxonomy as $term) 
      $template = $term->vid == 2 ? $term->name : NULL; 

  if ($template) $vars['template_files'][] = "template-".preg_replace("/[^a-zA-Z0-9s]/", "", strtolower($template));  

}

现在,如果我在一个名为A Green Page!的分类术语中有一个节点,它将查找template-agreenpage.tpl.php作为模板文件。

答案 2 :(得分:0)

我也想要这个功能,所以我创建了一个模块来为节点模板做这件事。您可以在此处找到它:http://drupal.org/project/template-picker