
Contrairement à Drupal 7, créer plusieurs instances de bloc à placer sur votre site est une tâche simple dans Drupal 8.
Dans ce guide, vous apprendrez comment ajouter un bloc de manière programmatique à l’interface de mise en page des blocs. Comment ajouter un formulaire de configuration (administratif) au bloc et comment le traiter. Enfin, vous découvrirez comment ajouter et afficher les valeurs de configuration par défaut pour ce formulaire.


Les blocs dans Drupal 8 sont des instances de plugins de blocs.
Le gestionnaire de blocs de Drupal scanne vos modules à la recherche de classes contenant l’annotation @Block.
L’exemple de code ci-dessous utilise l’annotation @Block avec les propriétés « id » et « admin_label » pour définir un bloc personnalisé.


Maintenant, disons que nous voulons ajouter la possibilité pour le constructeur de site d'entrer une partie de la configuration pour chaque instance de notre bloc personnalisé. Gardez toujours à l'esprit que toutes les configurations de construction de site dans Drupal 8 peuvent être exportées depuis le site de développement et importées sur le site de production (connu sous le nom de Gestion de la configuration).


Ajoutez la méthode suivante dans la classe HelloBlock. Dans cet exemple, elle se trouve dans le fichier src/Plugin/Block/HelloBlock.php, mais, à mesure que vous pensez en mode plus orienté objet, l’emplacement physique dans la structure des fichiers est moins important que l’espace de noms. Si vous êtes un programmeur OO très rigoureux, vous maintenez ces deux éléments bien alignés.


Pour utiliser la configuration des instances de bloc, nous pouvons modifier la méthode build() de la classe HelloBlock :
/** * {@inheritdoc} */ public function build() { $config = $this->getConfiguration(); if (!empty($config['hello_block_name'])) { $name = $config['hello_block_name']; } else { $name = $this->t('Ă personne'); } return [ '#markup' => $this->t('Bonjour @name !', [ '@name' => $name, ]), ]; }


Partie V de Guide pratique pour créer des modules basiques Drupal 8
De .info aux tests, uniquement les bases
Vous vous souvenez, dans le début de ce tutoriel, j'avais dit que nous allions définir un bloc avec un formulaire ? Eh bien, il est temps d’y venir.


Ce guide comprend des instructions pour créer votre propre type de champ, widget et formateur dans Drupal 8.


Ce tutoriel a été initialement publié sur Web Wash. Cependant, Berdir a demandé si je pouvais le publier ici, donc le voilà .
Un module Drupal 7 permettait de stocker des exemples de code/extraits dans un champ. Il fournissait un champ personnalisé appelé « Champ d’extraits » affichant trois éléments de formulaire : description, code source, et mode de coloration syntaxique (langage de programmation).
Mais il est temps de mettre Ă jour ce module pour Drupal 8.


Dans Drupal 8, tous les types de champs, widgets et formatteurs sont des plugins.
Ils sont automatiquement découverts s’ils sont placés dans la structure de répertoires attendue et utilisent la bonne annotation.
La structure de répertoire pour un module qui implémente les trois ressemble à ceci :
foo_bar_fields


Les types de champs définissent les propriétés et le comportement des champs. Les types de champs sont définis comme des plugins, il est donc recommandé de se familiariser avec l’API des plugins avant de créer un nouveau type de champ.
Pour créer un type de champ dans Drupal 8, vous avez besoin d’une classe avec une annotation FieldType.
Emplacement de la classe du type de champ : MODULE_NAME/src/Plugin/Field/FieldType
Exemple : /modules/foo/src/Plugin/Field/FieldType/BazItem.php
