Доступ к узлу / Просмотры:Какова функция domain_site и domain_id области
-
19-09-2019 - |
Вопрос
Я получаю дублирующиеся узлы в представлении, которое я создал в 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
Ответ, по-видимому, был гораздо более приземленным, чем я думал:
Используйте параметр конфигурации "отдельный узел" в разделе представления, это устраняет дубликаты.
Другие советы
Я думаю, что сферы подходят, когда у вас есть сайт drupal с включенным доступом к нескольким сайтам и вы используете модуль доступа к домену (http://drupal.org/project/domain) Если вам не нужен модуль доступа к домену, удаление может частично решить эту проблему.Если вам это действительно нужно, вам, скорее всего, потребуется добавить фильтр в ваше представление с доступом к узлу:Получите доступ к модулю Domain Views и / или используйте его.Это должно направить вас в правильном направлении.Сам я никогда не работал с этими модулями.Я только что просмотрел код модуля и страницы проекта.Удачи вам!