Créer une view personalisé en fonction des roles et de la taxonomie

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 cherche à créer une view qui sélectionnerais des titres de pages, en dépendant des rôles de mes utilisateurs, et de la taxonomie (termes/tags) que j'ai appliqué à mes pages. Or je n'arrive pas à faire un filtre en fonction du rôle (j'ai soit toutes mes titres de pages qui s'affichent, soit aucun...)

La configuration de se que j'ai actuellement :

  • des pages, avec des tags associés (TAG_1, TAB_2, ..., TAG_A, TAG_B, ...) : le premier groupe de tag est directement lié avec les rôles (1, 2) alors que le second dois permettre d'affiner les affichages (A, B).
  • des rôles (ROLE_1, ROLE_2, ...)

Pour une même vue, je veux que lorsque qu'un utilisateur de ROLE_1 vois la view, seulement les pages avec le TAG_1, s'affichent. Pour un user de ROLE_2, alors seulement les pages avec le TAG_2 s'affichent....Puis je dois pouvoir faire plusieurs view, avec par exemple un second filtre de tag : afficher toutes les pages avec TAG_1 et TAG_A pour ROLE_1, afficher les pages avec TAG_1 et TAG_B pour ROLE_1...

Le point ou j'en suit actuellement :

  • j'arrive à afficher toutes les pages pour un seul tag donné (quand je met plusieurs "taxonomie terme" dans la partie filtre, plus rien ne s'affiche...je pense que c'est parce que il ne choisie qu'un seul terme, même s'il y en à plusieurs.

L'idéale pour moi, serais de pouvoir ajouter une condition parmi les filtres, par exemple :

(en gras les différences)

Si user->role == ROLE_1 alors taxonomie_term = TAG_1
Si user->role == ROLE_2 alors taxonomie_term = TAG_2
...

Puis d'ajouter un nouveau filtre pour affiner :

view 1 : Si user->role == ROLE_1 alors taxonomie_term_1 = TAG_1 ET taxonomie_term_2 = TAG_A
view 2 : Si user->role == ROLE_1 alors taxonomie_term_1 = TAG_1 ET taxonomie_term_2 = TAG_B

Merci à celui ou ceux qui pourront m'apporter de l'aide !

PS : je suis prêt à tenter toutes types de solutions : modules, code PHP, ...

Version de Drupal :