【问题标题】:is there an argument to know you're on a views list page?是否有理由知道您在视图列表页面上?
【发布时间】:2008-12-17 14:56:09
【问题描述】:

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

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

干杯
史蒂夫

【问题讨论】:

    标签: drupal drupal-views drupal-5


    【解决方案1】:

    好的 - 我找到了自己的解决方案,不需要创建 20 多个页面模板。对于上面的示例,我将!node-&gt;type 的条件添加到我的查询中,因为视图不提供节点类型,然后通过站点确保在需要的页面视图级别禁用标题。

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

    感谢收听 :-)
    史蒂夫

    【讨论】:

      【解决方案2】:

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

      如果 ($page == 0)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        相关资源
        最近更新 更多