问题:
G089h515r806,你好。
请问一下怎么定义$content这个变量。
我想在首页的时候调用node-front.tpl.php,术语的时候调用node-taxonomy.tpl.php,节点的时候调用node-page.tpl.php,默认情况下调用node.tpl.php
谢谢
邓昌东
答复:
这个函数:
<?php
function _phptemplate_variables($hook, $vars = array()) {
switch ($hook) {
case 'node':
$vars['template_files'] = array('node-'. $vars['nid']);
break;
}
return $vars;
}
?>
你可以使用这种方法,如果用的是drupal5.X的话, 6.x我不知道这个方法是不是可行,不过也有相同的类似的方法.
就是在主题下面,建立一个template.php,然后向里面添加function _phptemplate_variables()函数,这个函数,里面根据你的实际作以下修改:
$vars['template_files'] = array('node-'. ‘front');
$vars['template_files'] = array('node-'. 'taxonomy');
$vars['template_files'] = array('node-'. 'page');
这样你就可以在你的主题下面使用node-front.tpl.php,node-taxonomy.tpl.php,node-page.tpl.php,这些模板的用法和node-nodetype.tpl.php是一样的。不过你需要在代码中加上一些判断条件,判断哪个是front,哪个是taxonomy,哪个是page。
具体怎么判断我就不多说了。
你可以参看相关的手册,特别是节点的那部分。
补充:这里还可以把 front, taxonomy, page归纳为变量$path, 可以这样用:
$vars['template_files'] = array('node-'.$path);
当然,前面你需要对$path进行一个处理。