Mise en situation  : Nous avons une vue affichant un type de contenu (p. ex News) contenant un champ title, un champ body et un champ images (illimitées). Chaque instance de la liste de notre vue devrait afficher les images sous forme de slideshow.

Il y a un module qui s'appelle Views Field View qui va nous permettre d'insérer une vue en tant que champ dans une autre vue. Voici la marche à suivre pour faire fonctionner des Contextual filters avec ce module. Le tutorial qui suit nécessite une connaissance de base du fonctionnement de views.

Création du slideshow :

Avec un module comme views slideshow, on peut facilement créer un slideshow. Configurez votre slideshow à votre guise en filtrant sur le type de contenu news. et en affichant que le champ image. Dans l'aperçu, il y aura toutes les images de tous les noeuds de type news. Nous allons changer cela en ajoutant un filtre contextuel (anciennement "argument").

  1. Ouvrez le panneau "Advanced" sur la droite.
  2. À côté de "Contextual filters", cliquez sur "Ajouter".
  3. Selectionnez "Content: Nid" (faites une recherche "nid" pour aller plus vite)
  4. Selectionnez "Provide default argument" puis "Content ID from URL" dans la première liste. Étant donné qu'il n'y a pas d'URL vu que cette vue sera dans l'autre vue, nous allons tâche de fournir un argument en conséquence.

 

C'est tout pour le slideshow ! Apply, Save, etc. Passons à la création de la vue principale.

Création de la vue principale :

  1. Installer et activer le module Views field view.
  2. Créer la vue principale (p.ex "news") contenant tous les champs nécessaires (soit title et body) sous forme de page, de block ou autre,
  3. Ajouter le champ "nid" que vous allez cacher. Ce champ est très important pour qu'il puisse être transmis à l'autre vue en tant qu'argument.
  4. Ajoutez le champ qui contiendra le slideshow. Il se trouve sous Global: View (en français : Global: Voir). Vous pouvez paramétrer ce champ en y mettant la vue que vous désirez. Selectionnez ici votre slideshow. Sous "Arguments", mettez [nid] qui correspond au token du champ nid ajouté précédemment. Ça va permettre d'envoyer à la vue en tant que Content ID.
  5. Apply, Save, etc.