代码之家  ›  专栏  ›  技术社区  ›  Steve Perks

有没有理由知道你在浏览列表页面上?

  •  1
  • Steve Perks  · 技术社区  · 17 年前

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

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

    干杯
    史蒂夫

    2 回复  |  直到 15 年前
        1
  •  3
  •   Steve Perks    17 年前

    好的,我找到了自己的解决方案,不需要创建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; ?>
    

    感谢收听
    史蒂夫

        2
  •  0
  •   Matt Winters    16 年前

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

    if($page==0)

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

    推荐文章