我必须将我的页面标题移动到我的节点以满足客户需求,但我现在无法在我的视图列表的页面视图中显示标题。我必须在编辑,管理和跟踪页面上显示标题的参数是:
<?php if ($title && ((arg(2) == 'track') || (arg(2) == 'edit') ||
(arg(0) == 'admin'))): ?>
<h1 class="title"><?php echo $title; ?></h1>
<?php endif; ?>
我想知道是否有一个泛型参数包含所有视图列表页面,或者反过来,只是排除所有节点页面(注意:我使用CCK,所以有很多内容类型)?< / p>
嗅出其他可能性......
我知道我可以为我的内容类型创建不同的页面模板,但是我可以为所有CCK内容类型创建一个不同的页面模板吗?
这是我进入template.php的代码,以便能够添加单个内容类型模板:
function _phptemplate_variables($hook, $vars) {
switch ($hook) {
case 'page':
if ($vars['node'] && arg(2) != 'edit') {
$vars['template_files'][] = 'page-'. $vars['node']->type;
}
break;
}
return $vars;
}
干杯
史蒂夫
答案 0 :(得分:3)
好的 - 我找到了自己的解决方案,不需要创建20多个页面模板。对于上面的示例,我将!node->type
的条件添加到我的查询中,因为视图不提供节点类型,然后通过该站点确保在页面视图级别禁用所有标题。
<?php if ($title && ((arg(2) == 'track') || (arg(2) == 'edit')
|| (arg(0) == 'admin') || !$node->type)): ?>
<h1 class="title"><?php echo $title; ?></h1>
<?php endif; ?>
感谢收听:-)
史蒂夫
答案 1 :(得分:0)
如果其他人正在研究一些类似的问题,另一种在node.tpl文件中提供参数的方法将适用于通过View(模块)显示节点时使用:
if($ page == 0)
对于单个节点的“常规”显示,将忽略以下任何内容。这不适用于page.tpl,因此如果需要将标题重新放入通过Views生成的所有页面,可以将其添加到views-view.tpl.php文件中并添加到主题中。或者可以为某些类型的视图添加其他更具体的视图tpl文件。