Drupal 7-使用视图与过滤器的关系

Drupal 7-使用视图与过滤器的关系,drupal,drupal-7,views,drupal-views,Drupal,Drupal 7,Views,Drupal Views,在视图中,我有一个公开的过滤器,它查看UID用户ID/作者,但是有没有办法将此限制为仅发布此内容类型的用户 我尝试添加一个内容:作者关系和点击应用。我不太清楚为什么,但直到现在我才能回到关系中,看到更多的选项,比如:User:Content authored,它必须依赖于第一个关系?所以我也选择了这个,并将其设置为: 现在我可以转到公开的筛选器并选择关系: 但这并没有起作用——公开的过滤器继续显示所有注册用户 我还尝试将用户引用字段放入此内容类型并将其附加到关系中,但它不允许显示任何内容,并给

在视图中,我有一个公开的过滤器,它查看UID用户ID/作者,但是有没有办法将此限制为仅发布此内容类型的用户

我尝试添加一个内容:作者关系和点击应用。我不太清楚为什么,但直到现在我才能回到关系中,看到更多的选项,比如:User:Content authored,它必须依赖于第一个关系?所以我也选择了这个,并将其设置为: 现在我可以转到公开的筛选器并选择关系:

但这并没有起作用——公开的过滤器继续显示所有注册用户

我还尝试将用户引用字段放入此内容类型并将其附加到关系中,但它不允许显示任何内容,并给出以下SQL警告:

SQLSTATE[42S22]:未找到列:1054“on子句”中的未知列“field\u data\u field\u hidden\u name.uid”


如何将此作者公开筛选器限制为仅发布此内容类型的用户?

有一些drupal模块可以帮助您解决此问题。比如

但是,如果您精通php代码,则可以创建逻辑来查询数据库并返回所需的结果(即表的列)。创建一个上下文过滤器,然后选择一个字段(任何字段都可以使用),但最好选择两种内容类型中的某个内容。然后编辑它,当过滤器值不可用->提供默认值->PHP代码

$nid = arg(1);// current node id
$query = "SELECT <desired_field_column_name> FROM {<field_data_table_name>} c 
WHERE c.<column_that_is_same_as_nid> = :nid";                                             
$result = db_query($query, array(':nid' =>$nid));
$id = array();
while ($row = $result->fetch())
{
                array_push($id, $row->field_curator_target_id);//put each node id that's referenced in array
}

$separated = implode("+", $id); // separate them by + for AND , for OR
return $separated; //eg.32 + 30 would represent nodes that you want.

有几个drupal模块可以帮助您。比如

但是,如果您精通php代码,则可以创建逻辑来查询数据库并返回所需的结果(即表的列)。创建一个上下文过滤器,然后选择一个字段(任何字段都可以使用),但最好选择两种内容类型中的某个内容。然后编辑它,当过滤器值不可用->提供默认值->PHP代码

$nid = arg(1);// current node id
$query = "SELECT <desired_field_column_name> FROM {<field_data_table_name>} c 
WHERE c.<column_that_is_same_as_nid> = :nid";                                             
$result = db_query($query, array(':nid' =>$nid));
$id = array();
while ($row = $result->fetch())
{
                array_push($id, $row->field_curator_target_id);//put each node id that's referenced in array
}

$separated = implode("+", $id); // separate them by + for AND , for OR
return $separated; //eg.32 + 30 would represent nodes that you want.
这里有关于视图选择性过滤器的答案,也就是视图选择性暴露过滤器,也就是视图选择性过滤器,也就是视图选择性过滤器

此模块添加名称中有后缀选择性的过滤器–添加一个您需要的过滤器,而不是没有后缀的过滤器。

中有关于视图选择性过滤器的答案,也称为视图选择性公开过滤器,也称为视图选择性过滤器,也称为视图选择性过滤器


此模块添加名称中具有后缀选择性的筛选器–添加一个您需要的筛选器,而不是不带后缀的筛选器。

问题在于,对于关系User:Content authorted,您只是在视图中添加了有关您的用户编写的内容的信息,但无法选择此特定类型的内容。因此,这并不是真正将用户限制为特定类型的作者,而是将他们限制为在应用该关系时编写过任何内容的用户。问题是,对于关系User:Content authored,您只是在视图中添加了有关用户编写的内容的信息,但是没有地方可以选择这种特定类型的内容。因此,这并不是将用户限制为特定类型的作者,而是将他们限制为在应用该关系时编写过任何内容的用户。