Nous avons déjà parlé des nœuds, des types de contenu et des champs. Dans Drupal, ils comprennent souvent le contenu principal d’une page. Il est fort probable que vous souhaitiez afficher des informations supplémentaires dans le reste de la page. Cela peut se faire à l’aide de conteneurs appelés blocs (en anglais, “blocks”). Par exemple, le contenu principal d’une page peut être un article de nouvelles et un bloc peut être utilisé pour afficher une liste d’autres articles écrits par le même auteur. Vous pouvez également utiliser un bloc pour afficher une zone de recherche ou un texte de copyright. Voyons ce que les blocs Drupal ont à offrir.
Contenu statique ou dynamique
Selon la fréquence à laquelle les informations présentées dans un bloc changent, elles peuvent afficher contenu statique ou dynamique. Lorsque les données à présenter sont toujours ou presque toujours les mêmes, nous disons que le contenu est statique. Par exemple, si vous créez un site Web pour un événement, vous pouvez utiliser un bloc pour afficher l’image de vos commanditaires sur la barre latérale dans chaque page de votre site. Un autre exemple est celui où le texte du copyright, souvent placé dans le pied de page, inclut l’année en cours. Cela changera une fois par an, de sorte qu’en termes pratiques, les données présentées peuvent être considérées comme statiques.
Par contre, lorsque le contenu change régulièrement, nous disons que le contenu est dynamique. Par exemple, vous pourriez vouloir avoir un bloc dans la barre latérale qui liste les derniers articles de nouvelles qui ont été publiés sur le site. Si vous deviez créer un nouvel article chaque jour, le contenu du bloc changera quotidiennement. Habituellement, cela se fait automatiquement, sans nécessiter d’interaction manuelle. Une fois que le bloc est configuré, en utilisant les Vues dans Drupal par exemple, il se mettra à jour lui-même. Un autre exemple de blocs dynamiques est celui qui affichera les produits les plus récents dans votre magasin virtuel.
Technical note: Drupal does not make a distinction between static or dynamic blocks, but it is a good mental model to consider when building your website.
Appliquer les règles de visibilité
Il est possible de configurer un bloc à afficher ou à masquer lorsque certaines conditions sont remplies. Le cœur Drupal fournit des règles pour contrôler la visibilité des blocs par type de contenu, pages (URL), rôles utilisateur et langues du site. Ces règles sont fournies via des modules, de sorte que vous pouvez rechercher des modules contribués ou en écrire des personnalisés pour fournir de nouvelles règles de visibilité. Par exemple, en utilisant le jour de la semaine ou la phase de la lune.
Considérons un site Web qui, entre autres, a un type de contenu “Article” et un autre “Événement”. Le bloc “plus d’articles écrits par le même auteur” a du sens lors de l’affichage d’un article d’actualité. Par contraire, lorsque vous visualisez un événement, cela n’a aucun sens, car les événements n’écrivent pas d’articles d’actualité. De même, un bloc affichant une carte avec l’emplacement d’un événement n’a de sens que lorsqu’on visite les pages détaillées des événements.
Les pages peuvent également être utilisées pour contrôler la visibilité des blocs. Dans ce cas, “pages”; fait référence à l’URL de la page que vous visitez. Par exemple, vous pouvez vouloir afficher une carte interactive uniquement sur la page de contact : /contact. Ou affichez l’adresse du bureau sur chaque page dans la section événements du site : /events/*. Dans ce cas, les astérisques (*) servent de caractères génériques qui correspondent à tout chemin commençant par /events/, comme /events/introduction-a-drupal/ ou /events/entrainement-migrations-drupal. Si vous voulez afficher un bloque sur la page d’accueil du site vous utilisez la valeur spéciale
Certaines de ces conditions vous permettent de les inverser. Par exemple, si vous voulez afficher un bloc partout sauf sur la première page. Lorsque vous définissez plusieurs règles, elles doivent toutes être satisfaites pour que le bloc apparaisse à l’utilisateur. Par exemple, dans la page du profil de l’utilisateur, vous pouvez afficher une liste d’articles que la personne pourrait être intéressée à lire en fonction d’articles lus précédemment. Ce bloc serait configuré pour apparaître dans la page /user et uniquement pour les utilisateurs authentifiés.
Utiliser l’information de l’environnement
Il est possible pour un bloc d’utiliser les informations de l’environnement pour modifier les informations à présenter. Revisitant l’exemple de “plus d’articles écrits par le même auteur”, avant que la liste soit agrégée, Drupal identifie l’utilisateur qui a créé cette page et a récupéré plus de ses articles. La même chose peut être faite avec d’autres données. Par exemple, si vous avez un concessionnaire automobile dans plusieurs villes, vous pouvez afficher une liste de plusieurs véhicules en vente dans la même ville.
La capacité de lire les données de l’environnement n’est souvent pas liée à des paramètres de bloc configurables. Au lieu de cela, il est déterminé par la façon dont le bloc a été initialement créé. Par exemple, lorsqu’un bloc est créé à l’aide d’une vue, c’est la vue elle-même qui vous permettra de lire l’identifiant du nœud ou l’auteur du nœud pour modifier l’information à présenter.
Les blocs peuvent avoir des champs
Dans un article précédent, nous avons parlé de la polyvalence des champs Drupal et expliqué les nombreux avantages de leur utilisation. Comme pour les types de contenu, il est possible de définir des types de blocs personnalisés et d’y ajouter des champs. Pour créer des types de blocs personnalisés, allez dans l’interface d’administration “Mise en page des blocs” puis sélectionnez l’onglet “Bibliothèque de blocs personnalisés”. Le chemin d’accès est votresite.com/admin/structure/block/block/block-content.
Tout ce qui a été décrit à propos des champs Drupal s’applique aux blocs. Un cas d’utilisation est la création d’un type de bloc “offre spéciale” avec les champs titre, description, image et date d’expiration. Le bloc peut être configuré de façon à ce que les offres spéciales apparaissent sur la barre latérale tant que la date d’expiration n’est pas arrivée. pear on the sidebar as long as the expiration date has not arrived.
Placement des blocs
Tout au long de cet article, vous avez peut-être remarqué que lorsque je parle de blocs, j’indique également l’endroit où ils apparaîtront sur la page : encadré, pied de page, en-tête, etc. Les blocs doivent être placés dans ce que l’on appelle des “régions thématiques”. Nous discuterons ces thèmes plus en détail dans un prochain article. Pour l’instant, il suffit de comprendre que l’une des nombreuses responsabilités d’un thème Drupal est de contrôler la mise en page du site. Le thème fournira des régions de contenu où les blocs peuvent être placés. Le nombre, l’emplacement et le comportement des régions varient d’un thème à l’autre. Pour les besoins de cet article, je ne parlerai que de Bartik, le thème bleu/gris/noir qui est installé par défaut avec Drupal.
Pour vérifier quelles régions thématiques sont disponibles, allez dans l’interface d’administration “Mise en place des blocs”;. Ensuite, dans la “Mise en page des blocs”, vous cliquez sur le nom du thème qui vous intéresse. Enfin, la dernière étape consiste à cliquer sur le lien “Aperçu des régions des blocs (Bartik)”;. Le chemin d’administration se trouve dans /admin/structure/block/demo/demo/bartik. Vous remarquerez 18 cases jaunes avec les noms qui y figurent. Chacune est une région thématique dans laquelle nous pouvons placer des blocs. Une fois l’inspection terminée, vous pouvez revenir en arrière en cliquant sur le lien “Quitter la présentation des régions de blocs” en haut à gauche de la page.
La région la plus importante est “Contenu”; qui contient généralement le contenu primaire d’une page. Les autres régions fréquemment utilisées sont “Sidebar first” (Première barre latérale) et “Sidebar second” (Deuxième barre latérale). Notez qu’ils ne sont pas nommés barres latérales gauche ou droite. C’est intentionnel. Drupal supporte plusieurs langues, y compris celles qui s’écrivent de droite à gauche comme l’hébreu. Dans ces cas, Drupal peut inverser la position des barres latérales à l’aide de CSS afin que le sens des barres latérales première et droite persiste dans ces langues.
Un thème peut également décider de masquer une région lorsqu’aucun bloc n’est configuré pour y apparaître. “Featured” en est un exemple. Cette région a un fond gris qui n’est pas visible dans une installation Drupal par défaut. Si vous ajoutez un bloc à cette région, vous le verrez. Sinon, toute la région est cachée. C’est ce qu’on appelle “effondrement” d’une région. C’est au thème de décider pour chaque région si elle sera cachée lorsqu’aucun bloc n’y est placé, ou si elle continuera à occuper l’espace qu’elle occuperait autrement. De même, il est possible pour un thème d’étendre une région lorsqu’une région adjacente est réduite.
Note : Il est prévu d’introduire un nouveau thème frontal qui remplacera Bartik par défaut dans les futures versions de Drupal. Pour en savoir plus sur cette initiative, consultez le site https://www.drupal.org/project/ideas/issues/306488.
Construire la page
Avec un autre concept vaincu, nous pouvons maintenant comprendre comment une page Drupal complète peut être assemblée. Considérons ce qui suit : un article d’actualité est un nœud de type contenu “Article”. Ce type de contenu est associé à plusieurs champs pour stocker des informations comme des balises et une image. Le nœud est affiché dans la région thématique “Contenu” remplissant le centre de la page. Et autour d’elle, nous pouvons avoir plusieurs blocs qui affichent des informations connexes à travers de multiples régions thématiques.
Qu’est-ce que ça fait de comprendre les pièces qui composent une page Drupal? Quelle est la fonction de bloc que vous trouvez la plus intéressante? Avez-vous d’autres conseils sur l’utilisation des blocs Drupal?