Pergunta

Estou recebendo nós duplicados na visão AA que criei no Drupal. Parece que o problema está relacionado à maneira como a junção é feita em visualizações para a tabela Node_Access.

Usando o Devel, vejo a seguinte consulta:

    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

A junção para a tabela Node_Access está fazendo com que os outros registros dupliquem porque existem vários registros Node_Access em um nó, um com o reino do domain_site e um registro com o reino do domain_id.

Os dados se parecem com isso (com algumas colunas cortadas para a brevidade):

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

Qual é a finalidade do reino? Como esses registros são preenchidos e, o mais importante, como posso consertar isso? O SQL está certo?

Foi útil?

Solução 2

Aparentemente, a resposta foi muito mais mundana do que eu estava pensando:

Use a opção de configuração "nó distinto" em visualizações, isso retira os enganos.

Outras dicas

Eu acho que os reinos se encaixam quando você tem um site de drupal com acesso a vários locais e você está usando o módulo de acesso ao domínio (http://drupal.org/project/domain) Se você não precisar do módulo de acesso ao domínio, a desinstalação pode resolver um pouco disso. Se você precisar, provavelmente precisará adicionar um filtro à sua visualização com o acesso do nó: Acesso e/ou usar o módulo de visualizações de domínio. Isso deve levar você na direção certa. Eu nunca trabalhei com esses módulos. Acabei de passar pelo código do módulo e páginas do projeto. Boa sorte!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top