Dans le cours : Créer un module avec Drupal 8

Créer un bloc programmatiquement - Tutoriel Drupal

Dans le cours : Créer un module avec Drupal 8

Démarrer mon mois d’essai gratuit

Créer un bloc programmatiquement

Voyons à présent comment créer un bloc simple qui permettra une simple sortie HTML à l'écran. Bien sûr, pour créer ce genre de bloc, vous pouvez aller dans l'administration, mais le but ici est de le créer programmatiquement et de le faire évoluer plus tard, en allant par exemple accéder directement à des informations en base de données, etc. Donc, pour créer un bloc, on va commencer par créer un nouveau dossier, donc dans « src », un dossier qui s'appelle « Plugin », ensuite « Block ». Donc notre dossier qui contient nos différents « blocs ». Et là, un fichier qui s'appelle « Demo... » - de préférence le nom du module - « ... Block.php ». On a créé notre classe de « blocs ». En « namespace » : nom du module... ... « Block », et on déclare « BlockBase ». Alors ici, avant de déclarer notre classe, on va créer un commentaire. Donc ici, aucune importance sur le premier élément du commentaire. Par contre ici, on va mettre en forme un commentaire particulier qui nous permettra de gérer l'affichage du bloc au niveau du backoffice de Drupal. Alors, on définit un « id », donc « l'id machine » du bloc et un « admin_label » qui sera visible sur le backoffice et comme ça on pourra reconnaître notre bloc. Donc ensuite, il nous reste à créer notre classe, donc qui s'appelle bien entendu « DemoBlock » et qui étend « BlockBase » que nous avons déclaré. Il ne nous reste plus qu'à gérer la sortie, donc avec la méthode publique « build » qui, ici, ne prend aucun paramètre. On a une petite erreur ici. Donc là, on a un « b » minuscule. Est-ce que c'est ça qu'on me reproche ? Bah non, j'ai bêtement oublié un point-virgul à la fin de l'instruction. Je disais, on a notre méthode « build » là, qui est la seule méthode, du coup, nécessaire pour créer notre bloc et à la même manière que pour le contrôleur, on va retourner un tableau avec un « markup ». Le type, on n'est pas obligé de le mettre à chaque fois. On peut même juste mettre directement « markup » qui est le type et par défaut « markup », donc on n'a pas besoin de le mettre. On est sous forme de tableau, donc on met une virgule. Bon, ça n'est pas obligatoire mais je la mets quand même parce que si on rajoute quelque chose en-dessous, on a déjà la virgule et puis on évite de se planter. Ensuite, on va aller dans « Structure », « Mise en page des blocs ». On va par exemple afficher dans l'en-tête hein. On fait placer le bloc : « Another Hello World », on retrouve notre bloc, on le positionne. Là, on ne met aucune config particulière. Ok, on retourne au site et on a notre bloc « Hello World again » qui s'affiche. Donc en modifiant ici, dans notre méthode « build », on peut très bien comprendre qu'on a toutes les possibilités d'accès aux outils de Drupal et de Symfony pour gérer exactement la sortie HTML qu'on souhaite.

Table des matières