Les Entités

Drupal 7 a introduit la notion d’Entité qui est désormais un élément central de son architecture. Grâce à cette notion, de nombreux problèmes résolus en dehors du Core de Drupal 6 sont désormais uniformisés sur la quasi-globalité de tout ce qui n’est pas paramétrage.

L’entité File Types pour gérer fichiers et médias.

Pour construire votre site et définir la structure de vos contenus, vous allez devoir vous familiariser avec les notions de :

  • Champs de l’entité
  • Bundles et champs des bundles
  • Modes d’affichage
  • Gestion d’affichages
  • Formatteurs

Nous allons tenter de vous débarrasser de tous ces gros mots en quelques pages. Vous allez voir, ce n’est pas si compliqué.

Les champs de l’entité

Tous les champs qui sont attachés aux entités, sont identiques sur tous les bundles.

Pour exprimer les choses plus simplement, prenons l’exemple de l’entité Type de contenus : les champs de l’entité sont communs à tous les types de contenus.

Dans la partie administration, et sur les formulaires d’édition de Drupal 7 : les champs d’entité sont positionnés dans les onglets verticaux en bas du formulaire.

Les champs de l’entité Node communs à tous les types de contenus.

Les champs des bundles

A l’inverse, les champs du Bundle (que l’on peut traduire par “Lot”), sont différents pour chaque bundle d’une entité.

Les champs du Bundles de l’entité File Types.

Pour le cas de l’entité “Type de contenu” : chaque type de contenu va pouvoir disposer de champs différents. Mais les champs de l’entité sont donc identiques pour tous les types de contenus.

Dans la partie administrative, les champs du bundle sont modifiables sur les onglets “Gérer les champs” et “Afficher les champs”. Sur le formulaire d’édition d’un contenu, ils constituent la partie principale du formulaire.

Gestion des champs

La page de gestion des affichages permet de :

  • Créer des champs ou des groupes de champs
  • Modifier des champs ou des groupes de champs
  • Ordonner des champs ou des groupes de champs
  • Insérer / retirer des champs ou un groupe de champ dans un groupe de champ

Pour ce faire, il vous suffit de cliquer sur les liens d’action Editer ou Effacer. Pour les groupes de champs, il faut cliquer sur une petite roue qui symbolise les paramétrages dans Drupal.

Les colonnes Type de champ et Widget affichent la valeur en cours dans un lien : en cliquant dessus vous accéder à une page d’administration. Bien souvent, un type de de champ n’a pas de paramètre à modifier, mais la page existe malgré tout : un message vous informe dans tous les cas de ce que vous pouvez faire.

Le Widget est l’interface utilisée pour modifier la valeur du champ dans le formulaire d’édition.Il ne faut pas le confondre avec le Formatteur qui définit la manière dont le champ est rendu lorsque le champ est présenté au visiteur du site.

Si vous avez activé le module field_group, vous avez la possibilité de regrouper vos champs et améliorer l’ergonomie d’édition avec des tabulations, onglets ou accordéons. Au-delà de quatre ou cinq champs, il est important de s’assurer que l’interface d’administration reste attrayante, lisible et confortable.

Modes d’affichages

Un mode d’affichage définit la manière dont les champs d’un bundle (un type de contenu, un type de bloc, un type de fichier, etc.) sera rendu. Un type de contenu donné pourra disposer de plusieurs type d’affichage.

Vous allez pouvoir choisir quel mode d’affichage utilisé pour présenter votre contenu dans une vue, au sein d’un panel ou encore dans le formatteur d’un champ Entity reference qui permet de créer un lien vers une autre entité.

Il existe un mode d’affichage par défaut qui est utilisé systématiquement si un mode d’affichage spécifique n’a pas été activé pour le supplanter.

Rendez-vous la page de Afficher les champs. En bas de l’onglet Défaut, vous trouverez un groupe de champs replié intitulé “Paramètres d’affichages personnalisés.

Cliquez pour ouvrir le groupe de champs, et activer les modes d’afficahges dont vous avez besoin pour ce type de contenu. Cliquez sur Enregistrer : après rechargement de la page, des onglets complémentaires sont apparus en haut à droite de la page “Afficher les champs”. Il ne vous reste plus qu’à les modifier.

Pour désactiver des affichages que vous souhaitez identiques à ce qui est défini dans l’onglet Défaut : recommencez en désactivant simplement les affichages personnalisés inutiles. Les paramètres par défaut sont de nouveau utilisés.

Nativement, les modes d’affichages disponibles sont définis dans le code. Certains modules comme Display suite ou Entity view modes permettent de créer des modes affichages complémentaires.

Gestion des affichages

Dans l’’onglet Gérer les affichages, vous allez pouvoir faire des actions similaires à l’onglet de Gestion des champs. Mais au lieu d’impacter la présentation du formulaire, vous modifier la manière dont les champs sont présentés. Vous pouvez ainsi :

  • Ordonner des champs ou des groupes de champs
  • Insérer / retirer des champs ou un groupe de champ dans un groupe de champ

Plus important, vous allez définir le rendu de chaque champ, pour chaque mode d’affichage. Vous allez ainsi vous limiter à trois champs sur l’affichage Résumé, placer tous les champs sur la page principale du contenu, et désactiver les liens sur l’affichage Imprimer.

Une interface clé de votre site : explorez, testez, jouez avec autant que nécessaire.

Pour le résumé, vous pouvez décider pour chaque champ que l’étiquette doit être affichée sur la même ligne pour le nom du modèle et ou les catégories séparées par une virgule, au-dessus du champ texte de plusieurs lignes qui décrit le produit, et être cachée pour la photo. Et faire des choix différents pour l’affichage de la page principale du produit.

Mais la colonne la plus importante est celle du Formatteur qui décide comment la valeur du champ est présentée.

Les formatteurs

La colonne Format permet de choisir le formatteur qui sera utilisé.

Le formatteur est l’une des fonctionnalités les plus puissantes de Drupal tout en étant très simple à utiliser pour le webmaster, et assez facile à maîtriser pour le développeur et même le thèmeur.

Dans Drupal 6, il était limité aux nodes. En généralisant les entités, Drupal 7 a permis d’en disposer sur la quasi-totalité des données gérées par le CMS. Ce faisant, il a été ainsi possible de disposer de la même souplesse pour les commentaires ou pour la termes de taxonomies que pour les nodes en matière de champs.

Non seulement vous pouvez modifier l’aspect d’un champ en utilisant un simple menu déroulant, mais il est aussi possible de gérer des options.

Nous avons déjà vu comment utiliser les formatteurs pour modifier la taille de l’image à afficher en fonction du mode d’affichage de l’article. Nous verrons pour chaque type de champs, quelques formatteurs disponibles.

Le formatteur Colorbox propose plus d’une option.

Bean

A part si vous ne faites rien de particulier avec les blocs dans votre site, vous devrier installer Bean.

Ici un type de bloc constitué d’un texte et d’une image.

Bean signifie Block Entities Aren’t Nodes : il faut donc retenir qu’il s’agit d’une Entité, mais plus légère que les Nodes et intégré à la logique de Bloc.

  • Ils sont donc aussi facilement positionnables qu’un bloc n’importe où dans l’interface, et
  • Peuvent être référencés depuis n’importe quel contenu (ou entité) au travers d’un champ Entity Reference.
Comme pour les types de contenus des Nodes, vous pouvez librement construire vos types de blocs avec Bean.

Bean permet de définir des types de blocs de la même manière que vous créez des types de contenus. Vous allez ainsi facilement disposer de blocs publicitaires, de blocs éditoriaux et de blocs purement graphiques.

Notez qu’en éditant le bloc, vous pouvez choisir quel mode d’affichage utiliser.

N’oubliez pas le bug du module Block qui charge tous les blocs activés sur chaque page, et pensez à limiter le nombre de blocs activés depuis ce module : évitez d’avoir plus de dix blocs activés par ce biais. Préférez (mini-)Panels ou passez par des templates si vous en avez la possibilité. Vous pouvez aussi utiliser Views ou Display Suite pour dynamiser le contenu de vos régions en réduisant significativement le nombre de blocs activés.