1

我不得不将我的页面标题移动到我的节点中以满足客户的需求,但我现在无法在我的视图列表的页面视图上显示标题。我必须在编辑、管理和跟踪页面上显示标题的论点是:

<?php if ($title && ((arg(2) == 'track') || (arg(2) == 'edit') || 
  (arg(0) == 'admin'))): ?>
    <h1 class="title"><?php echo $title; ?></h1>
<?php endif; ?>

我想知道是否有一个通用参数来包含所有视图列表页面,或者相反,只排除所有节点页面(注意:我使用的是 CCK,所以有很多内容类型)?


寻找其他可能性...

我知道我可以为我的内容类型创建不同的页面模板,但是我可以为我的所有 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;
}

干杯
史蒂夫

4

2 回答 2

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; ?>

感谢收听 :-)
史蒂夫

于 2008-12-17T17:43:18.527 回答
0

如果其他人正在研究一些类似的问题,另一种在 node.tpl 文件中提供参数的方法将适用于通过视图(模块)显示节点时使用:

如果 ($page == 0)

对于单个节点的“常规”显示,随后的任何内容都将被忽略。这在 page.tpl 上不起作用,因此如果需要为通过 Views 生成的所有页面重新添加标题,可以将其添加到 views-view.tpl.php 文件中并添加到主题中。或者可以为某些类型的视图添加其他更具体的视图 tpl 文件。

于 2009-10-17T08:12:58.707 回答