21/01/2013

Views et Drupal 7: comment créer des onglets et sous-onglets

En créant un site Drupal, il est souvent utile de structurer vos vues (views) selon une hiérarchie d’onglets et de sous-onglets.

Par exemple, puisque le concept de contenu englobe plusieurs éléments que le webmestre moyen considère comme distincts (pages, articles, mais aussi tout contenu spécifique à un site comme des communiqués presse ou autres), la création de pages administratives supplémentaires peut aider à mieux catégoriser ce contenu.

Ainsi, plutôt que de former les webmestres à utiliser la page de gestion de contenu par défaut de Drupal (example.com/admin/content) pour tout gérer, il peut être de mise, pour certains sites, de fournir d’autres pages administratives plus proches de la conception que le client a de l’information sur son site.

Par exemple, considérons l’exemple où le webmestre veut avoir accès aux articles du site et, de surcroît, veut les séparer en deux listes: les articles publiés et les articles à approuver (non-publiés). Dans ce cas, nous remarquons souvent que le webmestre sera plus à l’aise avec une interface administrative où le contenu est séparé selon sa conception du site et ses besoins d’affaires plutôt qu’une structure imposée par Drupal.

À cette fin nous pouvons utiliser le module Views pour ajouter des pages administratives de gestion de contenu. Chaque page administrative sera une vue visible selon un onglet, sous-onglet ou onglet par défaut.

(Cet article présume que vous savez comment installer le module Views et créer de nouvelles vues et affichages.)

Par défaut, Drupal nous fournit la page de gestion de contenu se trouvant à example.com/admin/content. Sur cette page, nous voulons ajouter un onglet « Articles » qui contiendra deux sous-onglets, « Articles publiés » (par défaut) et « Articles à approuver ». Notons qu’il peut être préférable d’utiliser le vocabulaire d’affaires du client plutôt que celui de Drupal: dans ce cas, « Articles à approuver » peut être préférable à « Articles non-publiés ».

D’abord, examinons le chemin de la page de gestion de contenu: admin/content. Nous devons utiliser ce chemin comme point de départ pour les vues que nous allons construire. Notre structure ressemblera à:

  • « Contenu » admin/content (page existante)
    • « Articles » admin/content/articles (onglet comportant deux sous-onglets)
      • « Articles publiés » admin/content/articles/published (sous-onglet par défaut pour « Articles »)
      • « Articles à approuver » admin/content/articles/moderation (sous-onglet supplémentaire pour « Articles »)

Puisque « Articles publiés » est le sous-onglet par défaut de « Articles », pour le webmestre le contenu de ce sous-onglet (admin/content/articles/published) sera identique au contenu de son onglet parent (admin/content/articles). Drupal fonctionne ainsi: dans les deux cas, le contenu de votre vue « Articles publiés » sera affichée; et le contenu de « Articles » sera ignoré.

Il est important de noter que la structure des chemins est importante puisqu’elle indique à Drupal où, dans l’arborescence, une page doit apparaître.

Ainsi, même si trois chemins seront définis selon l’arborescence ci-desssus, seulement deux vues seront accessibles aux webmestre, une pour les articles publiés et une pour les articles à modérer.

La première étape consiste à définir une vue parent. Le contenu de cette vue ne s’affichera jamais. Cependant elle doit exister pour que l’arborescence soit bien construite: par convention nous y mettrons les mêmes critères que pour son onglet par défaut. Créez une nouvelle vue avec les caractéristiques suivantes (cette vidéo de deux minutes montre toutes les étapes ci-dessous):

  • Titre: Articles
  • Filtres: Contenu de type article et publié
  • Chemin: admin/content/articles
  • Accès: mettre un accès administratif (selon une permission ou un rôle par exemple) pour éviter que le public ait accès à ces articles.
  • Menu: Onglet de menu
    • Titre de l’onglet: Articles

À présent créons l’affichage qui sera l’onglet par défaut de « Articles », soit les articles publiés:

  • Titre: Articles publiés
  • Filtres: Contenu de type article et publié
  • Chemin: admin/content/articles/published
  • Accès: mettre un accès administratif (selon une permission ou un rôle par exemple) pour éviter que le public ait accès à ces articles.
  • Menu: Onglet de menu par défaut
    • Titre de l’onglet: Articles publiées
    • Élément de menu parent: Existe déjà

L’élément de menu parent existe déjà puisque nous venons de la créer. Pour épargner du temps, Views nous permet de créer l’élément parent en même temps que l’onglet par défaut. Cependant, procéder ainsi ferait en sorte que notre structure n’apparaîtrait pas dans le menu administratif Admin Menu, largement utilisé. Il faut donc créer deux vues (ou affichages) distincts.

À présent créons la vue (ou l’affichage) « Articles à approuver ». Cette fois, les caractéristiques seront:

  • Titre: Articles à approuver
  • Filtres: Contenu de type article et non-publié
  • Chemin: admin/content/articles/moderation
  • Accès: mettre un accès administratif
  • Menu: Onglet de menu
    • Titre de l’onglet: « Articles à approuver ».

Une fois cette vue créée et enregistrée, le webmestre pourra se rendre à la page « Contenu » (example.com/admin/content) et cliquer sur l’onglet « Articles », qui présentera deux sous-onglets, avec l’onglet « Articles publiées » par défaut.

Le système de menu de Drupal pourrait gagner en facilité d’utilisation, mais vous offre un puissant outil pour générer une arborescence solide.

Albert Albala
Albert Albala

Suivant

La recette de tourtière familiale

En savoir plus