Il n'est pas rare qu'un projet Drupal 8, parce qu'il dispose de contenus structurés, s'étoffe de nombreux types de contenu, eux-mêmes comportant de nombreux champs, eux-même rendus de façon différente au travers de non moins nombreux modes d'affichage. Une des conséquences est que la phase de conception dite site building peut devenir alors extrêmement chronophage, voire source de multiples petits oublis encore plus chronophage à corriger /ajuster (utilisation des mêmes champs, texte d'aide associé, configuration du formulaire, des modes d'affichage, etc.). Et ceci peut faire apparaître cette phase de conception comme la phase la moins motivante, bien que indispensable.
Pour qui a déjà produit un projet Drupal 8 ambitieux, cela doit très certainement réveiller quelques souvenirs.
Heureusement nous disposons avec Drupal 8 de deux modules qui nous permettent de simplifier et accélérer de façon significative cette phase. Il s'agit des modules Entity Clone et Field Tools. Présentons brièvement ces deux modules à consommer sans modération.
Entity clone
Entity Clone est un module qui vous permet de cloner toute entité (ou presque) de contenu, donc les contenus, les termes de taxonomie, etc, mais aussi certaines entités de configuration et donc les types de contenu notamment. Ainsi dupliquer un type de contenu complexe, comportant de nombreux champs, peut être réalisé en un simple clic, en quelques secondes, permettant ensuite de personnaliser sur une base commune et identique les différents champs d'un nouveau type de contenu.
Son usage est on ne peut plus simple. Un clic sur l'opération Clone et le tour est joué.
Outre le cas d'usage d'accélérer la phase de site building d'un projet ambitieux, ce module peut être également particulièrement utile dans le cadre d'une architecture multi-site native pour mettre à disposition des types de contenu sémantiquement différents mais extrêmement similaires en terme de configuration. Et également dans le cadre d'une Usine à Site Drupal basée sur le module Micro Site, où ce module peut nous aider cette fois à cloner l'entité de contenu Site, permettant de créer un nouveau site, pré-configuré et avec du contenu existant, en un simple clic.
Son double usage à la fois sur les entités de contenu (qui peut faire gagner un temps considérable en terme de production initiale de contenu dès lors qu'il est relativement structuré et riche, notamment avec des paragraphes) et sur les entités de configuration le rend particulièrement utile à tout point de vue. Et pour compléter le tableau il faut mentionner que le module Entity Clone (dans sa version de dev à ce jour) est en mesure de cloner (ou pas, selon la configuration du module) toute entité référencée par l'entité source clonée. Ceci est particulièrement efficace notamment pour tout contenu utilisant des paragraphes. A noter l'existence d'un module, Entity Type Clone, au périmètre fonctionnel plus limité, centré sur les entités de configuration, que je n'ai pas eu l'occasion de tester encore.
Field tools
Le module Field Tools joue quant à lui dans un autre registre. Il permet de dupliquer les champs, leurs configurations d'affichage, ainsi que les modes d'affichages depuis un type de contenu (ou une entité de configuration de façon générale) vers un ou plusieurs autres types de contenu. Ceci est particulièrement utile si vous disposez déjà des différents types de contenu (et donc ne pouvez les cloner) et que vous souhaitez dupliquer un champ, un mode d'affichage, très rapidement vers d'autres bundles.
Son usage est également plutôt intuitif. Vous pouvez accéder la page de configuration pour chaque type d'entité depuis le lien Clone fields dans la liste des opérations disponibles (comme pour le module Entity Clone) ou encore depuis l'onglet Outils du type d'entité.
Nous pouvons sélectionner le ou les champs à dupliquer, puis ensuite sélectionner les différents type d'entité vers lesquels dupliquer ces champs. Redoutable d'efficacité pour qui a oublié d'ajouter un champ sur la quinzaine de types de contenu d'un projet.
En guise de conclusion
Ces deux modules peuvent être ajouté à votre liste de module de base pour tout projet Drupal 8. Ils peuvent vous permettre d'économiser une multitude de clics, de nombreuses heures et très certainement aussi quelques oublis et erreurs pour qui souhaite optimiser l'usage des champs par un usage au maximum transversal au travers des différents types d'entité d'un projet Drupal 8. Que ce soit en matière de conception initiale, ou en terme de maintenance du projet, ou encore d'exploitation ultérieure de ces champs au travers d'un module métier. Dans tous les cas, ils m'ont déjà permis d'économiser un temps conséquent, et très certainement aussi, de conserver la motivation d'un développeur Drupal intacte.
Ajouter un commentaire