知道你在视图列表页面上有争议吗?

时间:2008-12-17 14:56:10

标签: drupal drupal-views drupal-5

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

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

干杯
史蒂夫

2 个答案:

答案 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文件。