我在我在Drupal创建一个视图得到重复的节点。它出现的问题是关系到参加意见的node_access表做的方式。

使用devel的,我看到以下查询:

    SELECT node.nid AS nid,
           node.language AS node_language,
           node_data_field_weekend.field_weekend_value AS node_data_field_weekend_field_weekend_value,
           node_data_field_weekend.field_weekend_value2 AS node_data_field_weekend_field_weekend_value2,
           node.type AS node_type,
           node.vid AS node_vid,
           node_data_field_weekend.field_weekend_loc_nid AS node_data_field_weekend_field_weekend_loc_nid
      FROM node node
 LEFT JOIN content_type_wwme_weekends node_data_field_weekend ON node.vid = node_data_field_weekend.vid
INNER JOIN node_access na                                     ON na.nid = node.nid
     WHERE (na.grant_view >= 1 AND
           (
           (na.gid = 0 AND na.realm = 'all') OR
           (na.gid = 0 AND na.realm = 'domain_site') OR
           (na.gid = 0 AND na.realm = 'domain_id'))) AND
           (
           (
           (node.type IN ('wwme_weekends')) AND
           (node.status <> 0 OR
           (node.uid = 0 AND 0 <> 0) OR 0 = 1)) AND
           (DATE_FORMAT(STR_TO_DATE(node_data_field_weekend.field_weekend_value, '%Y-%m-%dT%T'), '%Y-%m-%d') > '2010-01-10') )
  ORDER BY node_data_field_weekend_field_weekend_value ASC LIMIT 0, 5

在加入到node_access表是导致其他记录复制,因为有多个node_access记录到一个节点,一个与domain_site领域和与域ID的境界一个记录。

在数据看起来有点像这样(削减为了简洁一些列):

nid     gid    realm        grant_view  grant_update    grant_delete
73      0      domain_id    1           1               1
73      0      domain_site  1           0               0
988     0      domain_id    1           1               1
988     0      domain_site  1           0               0
90      0      domain_id    1           1               1

什么用途的境界合适?这些记录是如何填充,而最重要的,我怎么能解决这个问题?是SQL吧?

有帮助吗?

解决方案 2

答案显然是很多更现实的,比我的想法是:

使用下享有“不同的节点”的配置选项,该取出愚弄。

其他提示

我觉得领域适合当你有多个站点访问Drupal站点打开,且使用域访问模块(的 http://drupal.org/project/domain )如果您并不需要在域访问模块卸载可能会解决一些这方面。如果您确实需要它,你将很可能需要一个过滤器添加到您的视图与节点的访问:访问和/或使用域视图模块。这应该让你在正确的方向前进。我从来没有与这些模块自己的工作。我只是通过模块的代码和项目页面去了。祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top