web-dev-qa-db-fra.com

Filtre contextuel avec vue bloc

J'ai une page vue ("/ news") avec un filtre contextuel pour les sujets ("news/design", "news/coding" ...) qui sont des termes de taxonomie et cela a bien fonctionné. En raison de certains changements pour le thème mobile, j'ai besoin d'une vue en bloc au lieu de la page, mais je ne peux pas le faire fonctionner avec les filtres.

Avec les anciens paramètres de filtre, je reçois tous mes articles dans "/ news", mais le filtre que j'utilise a changé la valeur par défaut du filtre en "taxonomy term ID from url"; Je vois maintenant une page vide pour "/ news" (c'est maintenant une page simple avec la vue de bloc incluse) et un "site introuvable" pour "/ news/design" etc. Dans l'aperçu de la vue, tout fonctionne bien .

Ce sont les paramètres de la vue.

screenshot

19
user6670

En général, la raison pour laquelle ce bloc ne fonctionne pas est qu'un bloc n'a pas de chemin assigné et que le filtre contextuel n'a pas de chemin sur lequel travailler. Pour connecter le bloc à un chemin, revenez aux paramètres du filtre contextuel et dans la section What to do if the URL is not available sélectionnez Provide default value et sélectionnez Raw value from URL dans la liste déroulante. Du Path Component box sélectionnez la position dans l'URL où votre filtre contextuel obtient sa valeur.

Dans votre cas spécifique, vous avez indiqué à la vue d'interpréter l'URL comme un terme de taxonomie et ce n'est probablement pas le format de votre URL (taxonomie/terme/tid). L'interface utilisateur Views est un peu trompeuse en ce qu'elle suggère que l'alias peut être utilisé dans le filtre contextuel lorsqu'il ne le fait pas. Drupal convertit l'alias en valeur URL de base lorsqu'il appelle la vue et c'est ce qui est directement disponible dans le filtre contextuel. Pour utiliser l'alias, vous devez l'informer spécifiquement comme décrit ci-dessus. La vue est puissant, mais un peu délicat à utiliser. Un outil que vous pouvez utiliser si vous avez une certaine expérience avec les requêtes SQL, est d'activer l'affichage des requêtes dans l'affichage Aperçu de l'onglet Paramètres. Cela vous dira quelles vues essaient à faire lorsque la vue est appelée.

Plus d'informations sur ce problème à l'adresse cette question

33
Ashlar