Доступ к узлу / Представления: Какова функция области domain_site и domain_id - PullRequest
2 голосов
/ 11 января 2010

Я получаю дубликаты узлов в представлении, которое я создал в 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 и одна запись с областью 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 ]

1 голос
/ 14 января 2010

Ответ, очевидно, был намного более приземленным, чем я думал:

Используйте опцию конфигурации "отдельный узел" в представлениях, это устраняет ошибки.

1 голос
/ 12 января 2010

Я думаю, что области подходят, когда у вас есть сайт drupal с включенным многосайтовым доступом и вы используете модуль доступа к домену (http://drupal.org/project/domain) Если вам не нужен модуль удаления из домена, может решить некоторые это. Если вам это нужно, вам, скорее всего, понадобится добавить фильтр к вашему представлению с доступом к узлу: доступ и / или использование модуля Domain Views. Это должно направить вас в правильном направлении. Я никогда не работал с эти модули сам. Я только что просмотрел код модуля и страницы проекта. Удачи!

...