J'essaie à nouveau de faire le tour des filtres contextuels! Je l'ai utilisé il y a quelque temps, mais je suis à nouveau totalement perplexe. Voici ce que j'essaie de faire:
- Générez une page de nœud de contenu cloné avec des termes de taxonomie insérés dans cette page clonée.
ex.: EXAMPLE.com/white-shoes/blue
Lorsqu'un utilisateur atteint la page / white-shoes, il affichera la page du nœud d'origine orientée vers la couleur blanche. Maintenant, si l'utilisateur atterrit sur / white-shoes / blue, il affichera la même page de nœud, mais cette fois tout le contenu du corps sera réécrit en remplaçant la couleur blanche par la couleur bleue.
Dans les vues, je devrais créer un affichage de page avec le chemin d'accès:% /%
Maintenant, je créerais un filtre contextuel pour récupérer le nid. J'ajoute Content: nid comme filtre contextuel. Je choisis FOURNIR UNE VALEUR PAR DÉFAUT et je mets ce code PHP:
$ x = drupal_lookup_path ('source', arg (0));
$ y = exploser ('/', $ x);
retourner $ y 1 ;
Ce code PHP convertit essentiellement la partie / white-shoes de l'URL en NID. Mais ça ne marche pas. J'ai testé le code via drush ev via le terminal et j'obtiens en effet un résultat renvoyé, donc je sais que cela fonctionne.
Je fais de même pour le nom du terme de taxonomie et j'ajoute un filtre contextuel pour cela également. Cette fois, je choisis FOURNIR UNE VALEUR PAR DÉFAUT et je sélectionne RAW VALUE FROM URL et je sélectionne le 2e argument.
Comme vous pouvez le voir lorsque j'entre une VALEUR D'APERÇU pour le filtre contextuel: AAA / BBB / CCC. Ma valeur par défaut est ignorée. Il est censé saisir le 2e argument, mais il n'obtient que le 1er. Regardez l'instruction SQL OERE et vous verrez qu'elle obtient AAA alors qu'elle devrait être BBB.
La question est donc de savoir ce que je fais mal ou existe-t-il une meilleure solution à ce que je veux accomplir?
Réponses:
Voici une vidéo et son article connexe qui vous expliqueront comment les utiliser, l'exemple utilise des animaux domestiques (chiens, chats) qui peut être un exemple assez simple pour aider à comprendre comment utiliser les filtres contextuels de vues.
VIDÉO: https://www.youtube.com/watch?v=lJFMTDuaxy8 (URL vidéo courte YouTube: lJFMTDuaxy8)
ARTICLE: http://www.metaltoad.com/blog/using-drupal-contextual-filters-views
la source
Le filtre contextuel est utilisé pour filtrer la sortie de la vue par des arguments URL, vous pouvez également passer les arguments manuellement dans ce format:
où "$ name" est le nom de votre vue (ex. 'example_view') et '$ display_id' est le type d'affichage de votre vue (ex. 'default') et "$ arg1, $ arg2, $ arg3" sont des arguments comme dans l'URL.
Les arguments URL ont la structure suivante:
http://example.com/arg_1/arg_2/arg_3 (arg_2 a le composant de chemin d'accès 2 (dans la page des paramètres d'affichage)).
Lorsque la valeur du filtre n'est pas disponible:
cela signifie que drupal ne trouve aucun filtre.
Fournissez la valeur par défaut:
lorsque la valeur du filtre n'est pas disponible, vous pouvez utiliser cette option pour créer un filtre pour la sortie des vues, ce filtre peut être du code PHP (si le module de filtre PHP est activé) ou il peut obtenir sa valeur à partir des arguments URL -> (valeur brute de l'url). La zone de texte Exception vous permet de tricher la valeur et d'afficher tous les résultats.
Lorsque la valeur du filtre est disponible
dans ce cas, vous effectuez une validation selon vos besoins et quelques autres options, lorsque drupal peut trouver la valeur du filtre.
la source
VALIDATION (type: PHP Code)
. Avec cette option, vous pouvez utiliser la vue objet et faire tout ce dont vous avez besoin. Dans votre cas, le/blue
chemin généré par les vues serait également utilisé pour récupérer l'ID de nœud de cet alias.