2

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

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

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

4

3 回答 3

2

ThemeKey 将允许您根据路径或其他条件加载主题。您可以使用其他方法,例如利用 template.php 的预处理器功能,并将其与 hook_form_alter 挂钩,并提出一种切换文件的方法。

于 2010-08-02T16:02:06.967 回答
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作为模板文件查找。

于 2010-08-06T12:35:56.880 回答
0

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

于 2013-05-25T20:56:10.137 回答