2009-10-06 5 views
0

(également affiché comme http://drupal.org/node/596860)Vues Drupal OG: ne peut pas créer de vue de tous les groupes dont je suis * pas * actuellement membre

Je voudrais créer une vue montrant que les groupes dont je suis pas déjà membre (ou un membre en attente). Cependant, la façon évidente de le faire (prendre la vue og_my et changer le filtre "Groupes organiques: Membre du groupe" en faux) ne fonctionne pas.

La raison en est que la requête SQL retourne essentiellement une ligne pour chaque utilisateur du groupe correspondant à vos conditions. Si vous recherchez vous-même (comme dans og_my), chaque nœud de groupe n'apparaîtra qu'une seule fois; Si vous n'êtes pas à la recherche de vous-même, chaque nœud de groupe apparaît N fois où N est le nombre d'autres membres du groupe. Ainsi, les groupes dont je suis déjà membre continuent d'être affichés tant qu'il y a au moins un autre membre.

Est-ce que quelqu'un a un moyen de contourner cela?

Merci, Adrian

+0

Première fois que je vois un poste de x à Drupal.org. Je serai intéressé de voir où vous obtenez la meilleure aide. Aussi http://stackoverflow.com/questions/1523957/drupal-retrieve-data-from-multiple-node-types-in-views-2/1524195#1524195 peut vous donner quelques conseils –

+0

Merci pour l'autre commentaire - je mai Bien finir par écrire du code à partir de zéro comme vous le suggérez. En ce qui concerne le cross-post, je suis nouveau sur la scène Drupal et je ne savais pas quelle communauté serait la meilleure. Bien que SO a définitivement la conception de l'interface utilisateur plus lisse et mieux! –

Répondre

1

Vous pouvez ne pas être en mesure d'atteindre cet objectif en vue directement car il ne supporte pas les sous-requêtes. Mon SQL est sorti comme ceci:

SELECT node.nid AS nid, node.title AS node_title FROM node node LEFT JOIN og_uid og_uid ON node.nid = og_uid.nid WHERE (node.type IN ('campaign','setting','system')) AND node.nid NOT IN (select nid from og_uid where uid = 1); 

Il est dit que vous pouvez transmettre les résultats par programmation d'une telle requête dans le système de vues pour thématisation.

Peut-être une gestion spéciale de l'argument Groupes organiques: membre d'un groupe, option d'exclusion d'argument?

J'ai également posté sur d.o dans l'espoir de pousser la conversation de problème en avant.

+0

Mes connaissances sur les vues sont assez floues. Pensez-vous que vous pourriez définir cette sous-requête dans un gestionnaire og_views et l'insérer dans la requête Views de cette façon? –

+0

Je n'en ai aucune idée. Les vues en elles-mêmes ne gèrent pas les sous-requêtes, donc ce serait un travail de patch jusqu'à ce que cela soit résolu. J'essaierais d'abord l'invocation programmatique de la vue avec cette requête SQL. – Grayside

+0

Vous pouvez utiliser hook_views_query_alter pour modifier une vue afin qu'elle produise le résultat souhaité. Voir http: //www.nicklewis.org/hook-views-query-alter-comment-programmer-alter-views-requêtes pour un exemple. –

0

Sauvage. OG Views Extra est devenu disponible sur d.o trois jours jours après votre première révision de cette question. Je ne l'ai pas utilisé, mais il a l'air juste comme ça.

Alors pourquoi installer ce module? Si vous avez besoin d'un contrôle plus fin. Les options utilisateur disponibles:

  • pas un site Membre du groupe ou membre du groupe
  • Administrateur
  • Membre
  • Groupe seulement
Questions connexes