[clot] filtres sur vocabulaires

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,
Je voudrais savoir si il est possible de faire 5 pages dont 4 de filtres sur des vocabulaires et la dernière affichant les noeuds (de type document) qui auront pour tags les termes choisit dans chacun des vocabulaires.

Je suis pas clair?
Je voudrais obtenir un filtrage de mes noeuds comme sur le site: http://bayle-correspondance.univ-st-etienne.fr/spip.php?page=glossaire2&...

A ceci pret qu'il faudrait que le choix d'un terme dans un vocabulaire (vocab_auteur par exemple) ouvre une autre page listant les termes d'un autre vocabulaire (vocab_source) qui apparaitront dans les documents dont au moins un auteur appartient au terme précédemment selectionné. Et ainsi de suite avec les vocabulaires: vocab_types et vocab_annee, jusqu'à obtenir après la liste des documents correspondant aux 4 termes choisit dans les 4 vocabulaires.

Voici un petit schéma:

view_auteurs (affiche la liste de tous les termes de vocab_auteurs utilisés dans tous les documents)
terme 1 > lien dont l'url pointe vers view_sources/[tid] (ex: view-sources/16)
terme 2 > lien dont l'url pointe vers view_sources/[tid] (ex: view-sources/20)

....

view_sources (affiche la liste de tous les termes de vocab_sources utilisés dans les documents qui ont au moins pour auteur celui sélectionné dans view-auteurs)
terme 1 > lien dont l'url pointe vers view_types/[tid auteur]/[tid] (ex: view-sources/16/51)
terme 2 > lien dont l'url pointe vers view_types/[tid auteur]/[tid] (ex: view-sources/20/52)

....

view_types (affiche la liste de tous les termes de vocab_types utilisés dans les docs qui ont au moins pour auteur et source ceux choisit)
terme 1 > lien dont l'url pointe vers view_types/[tid auteur]/[tid source]/[tid] (ex: view-sources/16/51/26)
terme 2 > lien dont l'url pointe vers view_types/[tid auteur]/[tid source]/[tid] (ex: view-sources/20/52/26)

....

view_annees (affiche la liste de tous les termes de vocab_annees utilisés dans les docs qui ont au moins pour auteur, source et type ceux choisit)
terme 1 > lien dont l'url pointe vers view_annees/[tid auteur]/[tid source]/[tid type]/[tid] (ex: view-index-filtre/16/51/26/24)
terme 2 > lien dont l'url pointe vers view_annees/[tid auteur]/[tid source]/[tid type]/[tid] (ex: view-index-filtre/20/52/26/53)

....

view-index-filtre (afficherait la liste des docs qui auront au moins une correspondance avec chaque terme).

Je pensais fair cela avec des views, des relations et des filtres contextuels, mais je suis un peu bloqué.
Voici ce que j'ai fait:

  • dans view-auteurs (vue de type page):
    j'affiche tous les termes du vocabulaire vocab_auteur.
    Les champs sont:

    • "terme de taxonomie: identifiant(id) du terme" masqué
    • "terme de taxonomie: nom" affiché avec l'url personnalisée = view-source/[tid]
      Critères: vocab_auteurs.
      Jusque là, pas de problème. A part que je liste tous les termes même ceux qui n'apparaissent plus dans aucun docs.
  • dans view-sources (type page -et non bloc)
    j'affiche les termes du vocabulaire vocab_sources qui apparaissent dans des docs dont l'un des auteurs est celui choisit précedemment.
    Les champs sont les id du terme et nom
    Le critère : vocab_source
    Relation: "terme de taxonomie: content with term" (requise)
    Filtres contextuel: "(nom de ma relation)Contenu: Auteur(s)" sur ma relation avec Provdide default value de type "content id from url".
    Cela semble fonctionner.

Par contre, pour la suite, il faudrait trouver le moyen de conserver tous les filtres précédents; et non uniquement le dernier.

Pour exemple, voici comment j'ai definit ma vue view_types:
j'affiche les termes du vocabulaire vocab_types qui apparaissent dans des docs dont l'une des sources est celle choisit précedemment (l'auteur n'est pas pris en compte: c'est ce qu'il faudrait changer).
Les champs sont les id du terme et nom
Le critère : vocab_type
Relation: "terme de taxonomie: content with term" (requise)
Filtres contextuel: "(nom de ma relation)Contenu: Source(s)" sur ma relation avec Provide default value de type "content id from url".

Seul le filtre précédent est pris en compte. Comment conserver les autres?
Au cas ou, si le père noël est dans le coin, un module existe peut-être pour faire cela?!

Version de Drupal : 

Après test, ils ne conviennent pas.
Finalement nous ferons un index par page; et le filtre ne sera pas conservé d'une page à l'autre.
Ce qui se fait facilement avec une vue listant les termes d'un vocabulaire, et de laisser le lien par defaut vers les pages /term.

Je clot le sujet.