【问题标题】:Drupal OG Views: cannot create view of all groups of which I am *not* currently a memberDrupal OG Views:无法创建我目前*不是*成员的所有组的视图
【发布时间】:2009-10-06 04:54:11
【问题描述】:

(也发布为http://drupal.org/node/596860

我想创建一个视图,只显示那些我不是已经是成员(或待定成员)的组。但是,这样做的明显方法(采用 og_my 视图并将过滤器“有机组:组成员”更改为 false)不起作用。

原因是 SQL 查询实质上为组中符合条件的每个用户返回一行。如果您正在搜索自己(如在 og_my 中),每个组节点只会出现一次;如果您不是在搜索自己,每个组节点会显示 N 次,其中 N 是其他组成员的数量。因此,只要至少还有一个其他成员,我已经是其成员的组就会继续显示。

有人有办法解决这个问题吗?

谢谢,阿德里安

【问题讨论】:

  • 我第一次看到 Drupal.org 的 x 帖子。我很想看看你从哪里得到最好的帮助。另外stackoverflow.com/questions/1523957/… 可能会给你一些建议
  • 感谢您的其他评论 - 我很可能会按照您的建议从头开始编写代码。至于交叉帖子——我是 Drupal 领域的新手,不确定哪个社区会更好。虽然 SO 绝对有更流畅和更好的 UI 设计!

标签: drupal drupal-views organic-groups


【解决方案1】:

您可能无法直接在视图中实现这一点,因为它不支持子查询。我的 SQL 是这样出来的:

SELECT node.nid AS nid, node.title AS node_title  FROM node node   LEFT JOIN og_uid og_uid ON node.nid = og_uid.nid  WHERE (node.type IN ('campaign','setting','system')) AND node.nid NOT IN (select nid from og_uid where uid = 1);

据说您可以以编程方式将此类查询的结果转发到 Views 系统中进行主题化。

也许是对参数 Organic Groups:Member of a Group, Exclude Argument 选项的特殊处理?

我还发帖到 d.o,希望能推动问题对话。

【讨论】:

  • 我对视图的了解非常模糊 - 您认为您可以在 og_views 处理程序中定义该子查询并以这种方式将其放入视图查询吗?
  • 我不知道。视图本身不处理子查询,所以在解决之前这将是一个补丁工作。我会先尝试使用该 SQL 查询以编程方式调用视图。
  • 您可以使用 hook_views_query_alter 来修改视图,使其产生您想要的结果。有关示例,请参见 nicklewis.org/…
【解决方案2】:

狂野。 OG Views Extra 在您第一次修改此问题后的 三天 天后提供。我没用过,但看起来应该可以。

那么为什么要安装这个模块呢?如果您需要更细粒度的控制。这 可用的用户选项:

  • 不是组成员
  • 组成员或站点管理员
  • 仅限组成员

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多