Comment créer un album photo contenant des sous-albums

Les modules existants sous Drupal 7 (comme par exemple Media Gallery) permettant de créer une album photo ne gère pas la possibilité d'avoir des sous-albums. Ce qui est assez embétant si on souhaite avoir une certaine hiérarchie dans son contenu.

La procédure ci-dessous va vous permettre de créer, par exemple, un album Privé contenant Vacances (et des sous-albums) et Famille (et des sous-albums). Un autre album pourra également être créé avec le même style de structure mais pour le professionnel par exemple.

En résumé, nous allons

  1. Créer un type de contenu Album
  2. Créer un type de contenu Album Category
  3. Créer un type de contenu Album Gallery (le type de contenu qui contiendra nos images)
  4. Créer des vues pour ces types de contenus.

Nous aurons besoin des modules suivants : References, Node Reference URL Widget, Views, EVA : Entity Views Attachment. D'autres modules sont optionnels pour améliorer l'affichage : Colorbox (ou équivalent), Plupload Integration, Plup. Installez-le et activez les.

Création d'un type de contenu Album

Créer un type de contenu "classique". Il n'y a rien de particulier et d'obligatoire à ajouter. Je vous conseille juste de décocher Promu en page d'accueil

Création d'un type de contenu Album Category

  • Décochez Promu en page d'accueil.
  • Ajoutez un nouveau champ Album Reference avec les paramètres suivants :
    • Champ : Référence de noeud
    • Widget : Reference from URL
    • Type de contenu pouvant être référencé : Album
    • Titre du lien : Ajouter une catégorie à l'album

Création d'un type de contenu Album Gallery

  • Décochez Promu en page d'accueil
  • Ajouter un champ existant Image avec les paramètres suivants :
    • Champ requis : Oui
    • Répertoire du fichier : (si vous le souhaitez)
    • Nombre de valeurs : Illimité
    • Type de widget : Plupload (si vous l'avez activer, sinon Image)
  • Ajoutez un nouveau champ Album Category Reference avec les paramètres suivants :
    • Champ : Référence de noeud
    • Widget : Reference from URL
    • Type de contenu pouvant être référencé : Album Category
    • Titre du lien : Ajouter une galerie à cette catégorie

Maintenant vous pouvez ajouter un peu de contenu. Cela sera plus facile pour créer nos vues et visualiser le résultat.

Créer les vues pour afficher correctement vos albums et galeries

  • Créez une nouvelle vue via Structure => Vues => Ajouter une nouvelle vue
  • Introduisez un nom pour votre vue. (par ex. : Album View), décochez la case Créer une page et cliquez sur Continuer et modifier (nous ne créons pas de page puisque nous allons créer des contenus d'entité)

Remarque : lorsque vous créer vos vues ou contenu d'entité, sélectionnez TOUJOURS Cet entity_view (supplanter) (this entity_view (override))

Contenu d'entité pour votre galerie

  • Cliquez sur Add puis sélectionnez Ajouter Contenu d'entité
  • Introduisez un nom pour ce contenu d'entité
  • Sélectionnez le type d'entité Noeud
  • Sélectionnez le paquet (bundle) Album Gallery
  • Ajoutez un filtre contextuelle (dans Avancé) sur Contenu : nid
    • Sélectionnez Fournir une valeur par défaut puis Identifiant du contenu depuis l'URL
  • Supprimer le champ Titre
  • Ajouter un champ Body
  • Ajouter un champ Image
    • Décochez Créer une étiquette
    • Outil de mise en forme : Colorbox (ou équivalent)
    • Style d'image dans le noeud : Medium
    • Lier à l'image : Contenu
    • Dans Paramètres de champ multiple, sélectionnez un espace comme séparateur

Contenu d'entité pour vos catégories

  • Cliquez sur Add puis sélectionnez Ajouter Contenu d'entité
  • Introduisez un nom pour ce contenu d'entité
  • Sélectionnez le type d'entité Noeud
  • Sélectionnez le paquet (bundle) Album Category
  • Ajoutez un filtre contextuelle (dans Avancé) sur Contenu : Album Category Reference
    • Sélectionnez Fournir une valeur par défaut puis Identifiant du contenu depuis l'URL
  • Ajouter un champ Image
    • Décochez Créer une étiquette
    • Outil de mise en forme : Image
    • Style d'image  : Thumbnail
    • Lier à l'image : Contenu
    • Dans Paramètres de champ multiple, introduisez 1 comme valeur à afficher

Contenu d'entité pour vos albums

  • Cliquez sur Add puis sélectionnez Ajouter Contenu d'entité
  • Introduisez un nom pour ce contenu d'entité
  • Sélectionnez le type d'entité Noeud
  • Sélectionnez le paquet (bundle) Album
  • Ajoutez un filtre contextuelle (dans Avancé) sur Contenu : Album Reference
    • Sélectionnez Fournir une valeur par défaut puis Identifiant du contenu depuis l'URL
  • Ajouter un champ Body

Maintenant il est nécessaire de définir ces vues comme affichage pour les types de contenu. Pour cela pour nos 3 types de contenu (Album, Album Category et Album Gallery)

  • Allez dans Structure => Type de contenu, cliquez sur Gérer les champs puis sur Gérer l'affichage (bug ?), normalement vous voyez un nouveau "champ" apparaitre : album_view.
  • Placez tous les champs en Caché sauf album_view et cliquez sur Enregistrer

Libre à vous maintenant de personnaliser à votre goût l'affichage avec les options supplémentaire (affichage du dossier parent, affichage en tableau, ...)