代码之家  ›  专栏  ›  技术社区  ›  cgp

节点访问/视图:域站点和域id域的功能是什么

  •  2
  • cgp  · 技术社区  · 15 年前

    使用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_访问表的连接导致其他记录重复,因为有多个节点的node_访问记录,一个具有domain_site领域,另一个具有domain_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 回复  |  直到 15 年前
        1
  •  1
  •   Jeremy Heslop    15 年前

    我认为当您有一个打开了多站点访问的drupal站点,并且您使用了域访问模块时,这些领域就适合了( http://drupal.org/project/domain )如果您不需要域访问模块,卸载可能会解决一些问题。如果确实需要,则很可能需要使用节点访问:访问和/或使用“域视图”模块向视图中添加过滤器。这会让你朝着正确的方向前进。我本人从未使用过这些模块。我只是浏览了模块代码和项目页面。祝你好运

        2
  •  1
  •   cgp    15 年前

    答案显然比我想象的要平凡得多: