我在Drupal中构建了一个“关于作者”视图块。这是在当前节点的创建者的user_id处链接的,这非常有效。
但是,我现在想知道如何将视图限制为某些内容类型。我不希望它只在博客上展示故事。我试图用Arguments做到这一点,但到目前为止我还没有运气。
任何人都可以帮助我吗?
答案 0 :(得分:3)
我建议使用pathauto为该类型的每个节点提供一个公共URL前缀(无论如何都是个好主意),因此您可以使用简单的块可见性路径限制。例如,您将内容类型路径模式设置为“article / [title]”,然后将阻止路径设置为“article / *”
答案 1 :(得分:1)
不,您可以使用view的内置参数验证器。
离。如何将视图限制为用户的uid值?“意思是,只有拥有该内容的登录用户才能看到任何给定视图。
这是Views Argument PHP Validator代码。
global $user; return $argument[0] == $user->uid;
答案 2 :(得分:0)
只需创建视图,转到块配置页面并使用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
答案 3 :(得分:0)
更好:
<?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;
?>