代码之家  ›  专栏  ›  技术社区  ›  Paul

仅在Drupal中显示特定内容类型的视图

  •  1
  • Paul  · 技术社区  · 15 年前

    但是,我现在想知道如何将视图限制为某些内容类型。我不想让它出现在故事中,只想出现在博客上。我试着用争论来解决这个问题,但到目前为止我没有任何运气。

    有人能帮我吗?

    4 回复  |  直到 12 年前
        1
  •  3
  •   Scott Reynen    15 年前

    我建议使用 pathauto 为该类型的每个节点指定一个公共URL前缀(无论如何,这是个好主意),这样就可以使用一个简单的块可见性路径限制。例如,将内容类型路径模式设置为“article/[title]”,然后将块路径设置为“article/*”

        2
  •  1
  •   windmaomao    13 年前

    如何将视图限制为用户uid值?也就是说,任何给定的视图如何只能由拥有该内容的登录用户看到。

    global $user; return $argument[0] == $user->uid;
    
        3
  •  0
  •   marcvangend    15 年前

    只需创建视图,转到块配置页面,并使用php获取块可见性规则。要仅在某些内容类型上显示块,请使用:

    <?php
    $match = FALSE;
    $types = array('story' => 1, 'page' => 1);
    if (arg(0) == 'node' && is_numeric(arg(1))) {
      $nid = arg(1);
      $node = node_load(array('nid' => $nid));
      $type = $node->type;
      if (isset($types[$type])) {
        $match = TRUE;
      }
    }
    return $match;
    ?>
    

    此代码取自drupal.org, Overview-approach to block visibility

        4
  •  0
  •   willeM_ Van Onsem    10 年前

    <?php
    $match = FALSE;
    $types = array('story' => 1, 'page' => 1);
    if (arg(0) == 'node' && is_numeric(arg(1))) {
      $nid = arg(1);
      $node = node_load($nid);
      $type = $node->type;
      if (isset($types[$type])) {
        $match = TRUE;
      }
    }
    return $match;
    ?>
    
    推荐文章