2

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

我尝试添加“内容:作者”关系并点击应用。我不完全确定为什么,但直到此时我才能回到关系并查看更多选项,例如:“用户:内容创作”(然后必须依赖于第一个关系?)所以我也选择了那个,并像这样设置它: 关系步骤 1 现在我可以去暴露的过滤器并选择关系:

关系步骤 2 但这不起作用——暴露的过滤器继续显示所有注册用户。

我还尝试输入一个用户参考字段(对此内容类型)并将其附加到关系中,但它不允许显示任何内容并给出此 SQL 警告:

SQLSTATE [42S22]:未找到列:1054 'on 子句'中的未知列'field_data_field_hidden_​​name.uid'

如何将此作者公开过滤器限制为“仅”在此内容类型中发布的用户?

4

2 回答 2

0

有一些 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.
于 2012-06-22T16:03:09.923 回答
0

链接主题中,有关于 Views Selective Filters 的答案(又名“Views Selective Exposed Filters”,又名 views_filters_selective,又名 views_selective_filters)。

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

于 2016-09-14T07:30:02.963 回答