filtes contextuels

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.

Je suis en train de boguer et j'ai besoin d'aide. J'ai googlisé à fond mais je ne trouve pas (ou n'arrive pas à comprendre) comment paramétrer les filtres contextuels à partir de l'url. J'ai peur de ne pas faire les bons choix (Drupal est hyper puissant mais on peut le paramétrer de xmille manières)
les options qui me sont proposées pour les contextes url sont les userId et les dates de mise à jour or moi j'ai besoin de paramétrer en fonction d'un taxonomyId qui soit différend selon la rubrique du menu. Mais je ne sais pas comment définir le paramètre source de l'url.
Je m'explique....

Ma structure de site va comprendre des rubriques par artiste.

artiste 1
- Projet 1
--- overview
---- related text main
------ related text 2
------ related text 3
- Projet 2
....
- Projet 3
....
- biographie
artiste 2
- Projet 1
--- overview
---- related text main
------ related text 2
------ related text 3
- Projet 2
....
- Projet 3
....
- biographie
.....

Les pages "biographies" sont construites à partir de plusieurs enregistrements
1 - texte de présentation "artiste node"
2 - liste des expositions "liste exposition node"
3 - liste de commandes/résidence "liste commandes/résidence "
4 - liste des publications = liste de "publication node"
Nota: tous les enregistrements ont un taxonomy term qui référence l'artiste concerné et chaque enregistrement lié à un projet a un second taxonomy term qui référence le projet.

==>j'arrive à construire ma page "biographie" en utilisant les filtres (modules Views et Panels) et je lui défini un chemin url et un lien menu ... par contre comment faire pour automatiser la création de cette même page pour les autres artistes ??
En théorie je pense que je peux utiliser ma page maître et paramétrer un filtre contextuel lié à l'url pour que si je me trouve dans la rubrique "artiste2" il me retourne les infos du "artiste2", si je me trouve dans la rubrique "artiste3" il me retourne les infos du "artiste3" etc.
Mais je sèche.
Ce que je sais faire = dupliquer la page maître artiste1 et paramétrer artiste2 etc. Ce qui correspond à créer du code en plus - j'ai peur de faire du surcodage et de créer une usine à gaz .... ou bien est-ce que je me prends la tête pour pas grand chose ???
Vos conseils seront les bienvenus. Merci par avance.
CaroleC

Vous avez raison, il faut abandonner la duplication de vues : c'est exactement le genre de contre emploi du module à éviter.

Si vous bossez sur D7, cela se passe dans la zone "Contextual Filters", en haut à droite. Mais c'est difficile de préciser sans savoir comment votre vue est faite exactement.

bonjour Numerizen,
Oui je bosse sur D7. Je vais essayer de préciser la construction de 'Vue' et 'Page'.
J'ai une Vue constituée de 3 volets et 1 page.

Volet exposition
--Titre + Body + tag_artiste (choix de l'artiste)
=> tag_artiste ne liste que les artistes (niv 1) et les projets par artiste (niv 2)
=>filtre sur contenu publié + has taxonomy term (cible l'artiste dans tags_artiste) + tags=expo (nota: tags = liste de taxo qui défini le type d'événement)

Volet commande/résidence
=> idem que volet expo mais tags filtré sur commande/résidence

Volet édition
=> même principe

page Biographie
body= parcours perso de l'artiste

Les contenus 'expo' et 'commande' ont le même doctype mais un 'tags' différent.
'Biographie' et 'éditions' ont des doctypes spécifiques.
Tous ont des champs 'tags' et 'tags_artiste'.
J'ai fait des tests de filtres contextuels mais au vu des résultats j'ai tout enlevé donc pas de filtres contextuels paramétrés.

J'ai composé une Page à partir de ces éléments de 'Vue'.
le chemin est Node/biographie => je voudrais que ce soit au final artiste1/biographie ; artiste2/biographie etc.
Les paramètres "accès" n'ont pas de critère.
entrée de menu=normal dans menu principal

J'espère avoir répondu correctement. J'avoue ne pas trop savoir quels sont les éléments qui te sont nécessaire pour pouvoir me répondre.
Merci par avance,
Carole

Je n'aurais sûrement pas procédé comme cela - ce qui ne veut pas dire que j'aurais fait mieux, mais maintenant que vous en êtes là, le plus simple serait sans doute d'utiliser des Views Attachments abusivement traduits en 'Fichier Attaché' dans Views. Ça consiste a attacher un affichage à un autre, donc les deux affichages fonctionnent ensemble.

Ceci étant dit, je ne vois pas comment vous allez pouvoir vous en sortir sans filtres contextuels. Comment dire à votre site que vous voulez les infos sur tel artiste sans donner une indication dans l'URL, par exemple de la forme biographie/artiste/nid_artiste ? Il faut bien que votre vue soit paramétrable automatiquement d'une façon ou d'une autre ...

Désolée, je ne me suis pas expliquée assez clairement.
Je n'ai absolument rien contre les filtres contextuels et je veux les utiliser mais je n'ai pas compris leur fonctionnement ou plutôt je n'ai pas compris la notion de référence dans l'url (elle vient d'où avant d'être dans l'url et comment savoir qu'elle y est ? c'est certainement très stupide comme question mais c'est là que je pèche !).
Mon site n'est qu'en phase de développement et en version bac à sable. Je n'ai aucune donnée sensible dessus et ne travaille qu'avec des contenus de test donc je peux tout à fait modifier mon approche si ce n'est pas la bonne.

C'est à vous de formater vos URL de telle manière que la vue trouve son argument.

Si votre vue a pour chemin /ma_vue, et pour argument Node:nid, le chemin /ma_vue/314159 appellera la vue et affichera la node 34159. C'est aussi bête que ça.

Avec un terme ou un tid de taxo, c'est le même principe.

désolé pour le retard dans ma réponse... déplacement pro + malade.. pas cool.
Je te remercie pour tes éclaircissements Numerizen. Quand tu le dis, ça a l'air effectivement évident. Je vais méditer cela et essayer de le mettre en application.

Hello !
Bon, j'avance et je suis pas loin du but mais trainaille en sortie de Panel...
Suite aux remarques de Numerizen, j'ai reconsidéré vaillamment mon approche et je suis repartie en chasse de tuto histoire de trouver dans quels paramètres je m'étais fourvoyée. J'ai bien compris ce que je devais faire mais la mise en oeuvre et le paramétrage sont loin d'être "clear as crystal".

J'ai revue ma vue :-)
Elle est composée de 4 volets qui rassemblent les champs (info et tags) dont j'ai besoin -ok
Critère de filtrage - publié et node_type
filtres contextuels - terme de taxo =nom
relation - j'ai une relation sur les tags mais ne suis pas sûre qu'elle me soit bien utile (quand tout fonctionnera, je testerai de l'enlever pour voir)

Paramètres des volets
- lier à la vue : non
- utiliser le chemin module panel : non
- argument input : saisie sur la configuration panel, terme de taxo=nom
- permettre les paramètres: aucun
(nota: c'était l'argument input qui me faisait défaut)
==> aperçu ok et fonctionnel en réponse au filtre contextuel

Ensuite ma page dans panel
chemin défini: /biographies/%term
Argument: %terme - position 1 - aucun contexte assigné (comprend pas bien comment et à quoi cela sert??)

J'ai crée ma première variante en incluant mes 4 volets dans ma mise en page. A chaque insertion de volet, j'ai renseigné le terme de taxo (artiste1)

==> je me prend à rêver - l'aperçu rend ok - toutes mes infos et seulement celles que je veux sont là :-)

Dans mon enthousiasme, je me prends à tester une seconde variante avec le terme de taxo (artiste2)
==> l'aperçu est nickel - je ne rêve plus, c'est le bonheur...

Les aperçus dans page c'est bien mais si j'allais voir en réel dans le site ??
pb je ne trouve pas ma page.
J'ai tester /biographies/%term en remplaçant %term par le terme de taxo artiste1 et artiste2 mais rien et rien. J'ai tester toutes les variantes qui me passaient par la tête mais queneni.
J'ai dû rater une case à cocher, un truc tellement évident que personne n'en parle ou un paramètre pour moi obscure... Bref je trouve pas et pas de possibilité de créer une entrée de menu (cela aurait été trop simple).

Voila où j'en suis. Please dites moi que je suis pas loin d'y arriver. grand moment de solitude pour moi ce soir :-(

Des volets, c'est à dire des blocs ? Les blocs n'ont pas de connaissance des arguments passés par URL et il faut donc du code pour qu'ils les récupèrent. On place en général ce code dans la partie Validation de l'argument, "Si l'argument n'est pas présent", une snippet du type :

<?php
return arg(1);
?>

Non pas des blocs. des volets - je pense qu'en anglais ce doit être les content panes.
Pour que ce soit plus clair

pour memo l'argument input = saisie sur la configuration panel, terme de taxo=nom
et mes pages de panels sortent ok dans l'aperçu de l'interface Panel ... c'est dans le site que je ne les vois pas. Je pensais plutôt que c'était du côté panel et pas view que j'avais un problème
????
sinon pour info le php = langue étrangère pour moi )-:

Il me semble que dans Panels il y a des tas de choix pour que les différents éléments sachent où trouver leurs arguments. De mémoire des choses du genre 'From URL' soit dans les propriétés des Panes eux-même, soit dans les propriété de la variante.

Bon... c'est sympa. tout le monde m'a oublié.
Pour info, j'ai continué à galérer mais j'ai trouvé la sortie (valait mieux - visiblement mon pb n'intéressait pas grand monde).

Pour ceux qui ont du mal à comprendre toutes les subtilités des nombreux paramétrages de Panels et Views je vous encourage à suivre la série de tuto suivante.
à réserver malheureusement au "english speakers".

Pour Views: http://nodeone.se/blogg/learn-views-screencast-series-summed-up
Pour Page Manager: http://nodeone.se/blogg/learn-page-manager-screencast-series-summed-up

C'est ce que j'ai trouvé de mieux. Félicitations à Johan Falks qui fait vraiment un gros effort pour donner une vue générale mais détaillée des modules. C'est grâce à lui que j'ai compris que je m'étais trompé en paramétrant les "parameters Input" dans views : du coup pas d'arguments repris dans panels et page blank dans le site.

Aujourd'hui tout fonctionne : c'est cool :-)