Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Créer un bloc des billets de blog récents, par auteur

Référence en anglais sur logrus.com : http://views-help.doc.logrus.com/help/views/example-author-block


Dans cet exemple vous allez créer un bloc contextuel qui affiche les titres des billets de blog récents, par auteur, lorsque vous lisez un de ses billets. Cela montrera l'usage des arguments Views pour le filtrage dynamique des vues à leur affichage.

Avant de travailler avec cet exemple, activez le module Blog et créez quelques billets d'auteurs différents.

Créer la Vue

La première étape consistera à créer une vue pour le bloc des billets de blog récents. Puisque le bloc montrera les titres des billets, cette vue sera du type Node. Allez dans Administrer › Construction du site › Views > Ajouter , renseignez les propriétés suivantes et cliquez sur Suivant:

Nom de la vue
recent_blog_entries
Description de la vue
Liste des billets de blog d'un auteur donné
Étiquette de la vue
blog
Type de vue
Node

Générer la liste des billets de blog

Il sera plus simple de voir l'évolution de la vue si on la voit faire quelque chose. Nous allons créer dans cette section une vue simple qui affiche les titres des billets de blog.

  1. Dans la troisième colonne, localisez la zone Champs. Pour résumer, les champs sont contiennent les données que vous voulez afficher dans la vue (dans notre cas, le titre du node). Cliquez sur le bouton + pour ajouter un champ.

  2. Descendez jusqu'à Paramètres par défaut : Ajouter champs. Une longue liste de champs est disponible.

  3. Dans la liste déroulante Groupes :, sélectionnez Node, cela réduira la liste aux seuls champs du module Node.

  4. Faites défiler la liste, cochez Node : Titre et cliquez sur Ajouter.

  5. Vous obtenez alors les paramètres du champ : Paramètres par défaut : Configure champ Node : Titre.

    Effacez le Titre de Étiquette :, ainsi les titres de node ne seront pas préfixés chacun avec le mot « Titre ». Cochez également Lier ce champ à son nœud, les visiteurs pourront ainsi cliquer sur le titre qui les intéresse pour lire le billet de blog correspondant.

  6. Une fois tout ceci fait, cliquez sur le bouton Mise à jour.

    Si vous descendez alors vers la Prévisualisation en direct, vous verrez une liste de titres de nodes; ceux des billets de blog mais aussi ceux d'autres contenus. Nous allons arranger cela.

  7. Remontez en haut de la page et, dans la quatrième colonne, localisez la section Filtres. Les filtres limitent les résultats affichés dans les vues et nous allons les utiliser pour n'afficher que les titres de billets de blog.

    Cliquez sur le bouton + pour ajouter un filtre.

  8. Comme avant, descendez jusqu'à Paramètres par défaut: Ajouter filtres, sélectionnez Nodes dans la liste déroulante Groupes : pour restreindre la liste aux seuls champs du module Node.

  9. Faites défiler la liste, cochez la case Node : Type puis cliquez sur Ajouter.

    Dans la zone Paramètres par défaut: Configure filtre Node : Type qui s'affiche, laissez le bouton radio Fait partie de coché et cochez la case Billet de blog qui se trouve sous Type de nœud. Cliquez sur Mise à jour une fois que c'est fait.

  10. En descendant vers la Prévisualisation en direct, vous verrez que la liste ne montre maintenant que les titres des billets de blog.

Rendre la vue sensible au contexte avec des arguments

Alors que les filtres sont très utiles pour restreindre les résultats d'une vue lorsque la condition du filtre est toujours la même (par exemple, une vue des billets de blog devra toujours être filtrée sur le type Billet de blog), ils s'avèrent inutiles lorsqu'il s'agit de filtrer en fonction du contexte de la page. Dans notre cas, nous voulons afficher une liste de billets différente selon que le billet soit posté par l'utilisateur « administrateur » ou par l'utilisateur « membre », et les filtres ne nous y aideront pas.

Par chance, il y a une autre façon de filtrer le contenu d'une vue : arguments. Avec les arguments, Views peut obtenir un contexte supplémentaire (typiquement via les URL dynamiques contenant un ID) et l'utiliser lors de l'affichage de la vue.

Ajoutons et paramétrons un argument pour notre vue afin qu'elle change de contenu selon l'auteur du billet.

  1. Dans la troisième colonne, localisez la zone Arguments. Cliquez sur le bouton + pour ajouter un argument.

  2. Puisque nous basons la vue sur le contenu d'auteurs, dans la liste déroulante Groupes:, on sélectionne cette fois-ci Utilisateur et on coche Utilisateur : UID. Puis on clique sur Ajouter.

  3. La zone Paramètres par défaut: Configure Argument Utilisateur : Uid contient pas mal de choses mais seules certaines d'entre elles nous intéressent.

  4. Le champ Titre :, contrairement au champ Titre des paramètres de base, il peut ici se baser sur le contexte dans lequel la vue est affichée. Modifiez le titre en « Derniers billets de %1 ». Lorsque la vue sera affichée, %1 sera remplacé par le nom de l'auteur (à partir de l'argument User: Uid).

  5. Sous Action à mener si l'argument est absent : il y a plusieurs propositions, allant de l'affichage d'une page 403 ou 404 au simple affichage de toutes les valeurs de la vue. Dans notre cas, si un argument n'est pas spécifié (ce qui n'arrivera pas puisque la vue sera affichée dans un bloc et non dans une page avec sa propre URL), nous voulons lui en donner un par défaut. Cochez Fournir l'argument par défaut.

  6. Si JavaScript est activé dans votre navigateur, vous devriez obtenir un nouveau choix pour Type d'argument par défaut. Cochez Identifiant utilisateur dans l'URL, ce qui fera apparaître une nouvelle option, Rechercher aussi un nœud et utiliser l'auteur du nœud, cochez-là.

    Cela forcera Views à chercher d'abord s'il peut trouver l'ID Utilisateur à partir de l'URL (par exemple, user/1). Si non, il cherchera si la page en cours est une page de node (comme node/42) et si oui, il prendra l'ID utilisateur dans le champ auteur du node.

  7. La zone Validator options propose une façon pratique de contrôler le genre d'argument que votre vue acceptera. Sélectionnez Utilisateur comme Validateur. Par défaut, modifier ce paramètre contrôlera l'argument et s'assurera qu'il s'agit d'un ID utilisateur correct; si non, la vue ne sera pas affichée dans la page.

  8. Une fois que vous aurez paramétré le Titre, l'argument par défaut et le validateur, cliquez sur le bouton Mise à jour pour sauvegarder ces modifications.

  9. Vous remarquerez que la Prévisualisation en direct ne montre plus rien. Avons-nous cassé la vue ? Heureusement non. Elle respecte simplement notre souhait de ne pas être affichée lorsqu'aucun ID utilisateur correct lui est fourni. Indiquez «1» dans le champ Arguments: et cliquez sur Aperçu. Vous devriez obtenir la liste des billets du seul utilisateur 1.

Créer le bloc

La prévisualisation en direct nous montre donc maintenant ce que nous voulons obtenir. Il y a juste un petit problème : il n'y a pas encore le truc pour placer ce que nous avons fait dans un bloc ! Résolvons ça en ajoutant un Nouvel affichage.

  1. Remontons en haut de la page. Dans la première colonne, sous Paramètres par défaut, il y a une liste déroulante qui contient les éléments Page, Flux, Fichier attaché et, oui, Bloc ! Sélectionnez Bloc et cliquez sur Nouvel affichage.

  2. Il n'y a plus grand chose à faire ici concernant Views. En-dessous de Paramètres des blocs, cliquez sur Aucun à côté de Admin et renseignez la description du bloc dans Bloc: Description pour l'administration des blocs, comme : Billets récents par auteur et cliquez sur le bouton Mise à jour.

  3. Sauvegardez votre travail en cliquant sur le bouton Enregistrer, en bas de l'interface de Views. Vous devriez ensuite obtenir un message comme quoi la vue a été enregistrée.

  4. Ensuite, rendez-vous dans Administrer > Construction du site > Blocs et faites glisser le bloc « Billets récents par auteur » dans l'une des régions de votre choix puis cliquez sur le bouton Enregistrer les blocs.

  5. Vous remarquerez que rien ne change. Aucun bloc ne s'affiche nulle part.

    Souvenez-vous que vous êtes dans les pages d'administration, vous n'êtes pas dans une page qui fournit un contexte ID Utilisateur. Affichez un billet de blog quelconque, vous verrez alors le bloc que vous venez de créer, affiché dans la région que vous avez indiquée, intitulé quelque chose comme « Derniers bilelts de ... », avec une liste de billets de blog.

Touches finales

Il y a encore quelques petites choses à faire avant que notre vue soit terminée. Par exemple, nous avons dit que le bloc afficherait les billets de blog récents, mais au lieu de ça il les affiche dans l'odre de leur création, les plus anciens au début. De plus, même les billets non publiés sont listés...

  1. Retournez dans Administrer > Contruction du site > Views et cliquez sur Modifier de la vue recent_blog_entries.

  2. Ajoutez un nouveau filtre en cliquant sur le bouton + de la section Filtres, dans la quatrième colonne.

  3. Dans la liste déroulante Groupes, sélectionnez Node puis cochez Node : Publié. Cliquez sur Ajouter.

  4. Dans la section Publié qui s'affiche, cochez Oui et cliquez sur le bouton Mise à jour.

  5. Pour le tri, localisez la zone Critères de tri (juste au-dessus de Filtres) et cliquez sur le bouton +.

  6. Dans la liste déroulante Groupes:, sélectionnez à nouveau Node et, dans la liste des options, cochez Node : Date de publication puis cliquez sur le bouton Ajouter.

  7. Dans la zone Paramètres par défaut: Configure critère de tri Node : Date de publication, modifiez l'Ordre de tri en Descendant. Cela placera les bilelts récents avant les anciens. Cliquez sur le bouton Mise à jour quand vous avez terminé.

  8. Enfin, cliquez sur le bouton Enregistrer pour que vos modifications soient prises en compte.