到目前为止,我一直硬编码某个页面应该使用什么页面模板,或者基于 URL,或者它是什么类型的节点。
真正有用的是,如果有一种方法可以选择要使用的 tpl 文件,就在节点编辑表单中。这将允许用户随意在不同的页面布局之间滑动。
有谁知道解决这个问题的好方法,或者解决这个问题的方法?
到目前为止,我一直硬编码某个页面应该使用什么页面模板,或者基于 URL,或者它是什么类型的节点。
真正有用的是,如果有一种方法可以选择要使用的 tpl 文件,就在节点编辑表单中。这将允许用户随意在不同的页面布局之间滑动。
有谁知道解决这个问题的好方法,或者解决这个问题的方法?
ThemeKey 将允许您根据路径或其他条件加载主题。您可以使用其他方法,例如利用 template.php 的预处理器功能,并将其与 hook_form_alter 挂钩,并提出一种切换文件的方法。
我最终为模板文件添加了一个新词汇表(在我的例子中,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
作为模板文件查找。
我也想要这个功能,所以我制作了一个模块来为节点模板做这件事。你可以在这里找到它:http: //drupal.org/project/template-picker