Question

Je reçois des noeuds en double dans une vue que j'ai créé dans Drupal. Il semble que le problème est lié à la façon dont la jointure se fait dans les vues de la table node_access.

En utilisant devel, je vois la requête suivante:

    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

La jointure à la table de node_access est à l'origine des autres documents à reproduire, car il y a plusieurs enregistrements node_access à un noeud, un avec le domaine de la domain_site et un enregistrement avec le royaume de id_domaine.

Les données ressemble un peu comme cela (avec quelques colonnes coupées par souci de concision):

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

Quel est le but ne correspond le domaine? Comment ces dossiers sont renseignés, et surtout, comment puis-je résoudre ce problème? Le droit SQL?

Était-ce utile?

La solution 2

La réponse était apparemment beaucoup plus banal que je pensais:

Utilisez l'option de configuration "noeud distincte" sous vues, cela prend des dupes.

Autres conseils

Je pense que les domaines s'adapter lorsque vous avez un site avec un accès drupal multi site et si votre accès en utilisant le module de domaine ( http://drupal.org/project/domain ) Si vous ne avez pas besoin du module d'accès désinstallation de domaine peut résoudre certains de cela. Si vous en avez besoin, vous aurez probablement besoin d'ajouter un filtre à votre point de vue avec l'accès Node: accès et / ou utiliser le module Vues de domaine. Cela devrait vous obtenir dirigé dans la bonne direction. Je ne l'ai jamais travaillé avec ces modules moi-même. Je suis allé dans le code du module et les pages projet. Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top