Créer champ Type d'hébergement drupal
Les blocs dans Drupal 8 sont des instances du plug-in bloc.
Le gestionnaire de blocs Drupal scanne vos modules pour toutes les classes qui contiennent une annotation @Block.
L'exemple ci-dessous extrait utilise l'annotation @Block ainsi que les propriétés « id » et « admin_label » pour définir un bloc personnalisé.
Créez le fichier src / plugin / Bloc / HelloBlock.php dans le squelette du module créé précédemment et ajoutez le code ci-dessous. Vous, bien sûr, besoin de reconstruire le cache.
Pour ajouter « Bonjour bloc », vous pouvez aller à la structure -> Mise en page Bloc (admin / structure / bloc), puis cliquez sur le bouton « Placer bloc » associée à chaque région disponible.
En cliquant sur le bouton « Placer bloc » pour une région donnée un « lieu bloc » pop-up de dialogue apparaît, avec une liste de tous les blocs disponibles. Pour trouver rapidement votre bloc, utilisez simplement l'option « Filtrer par nom de bloc » ou utilisez-défilement de la souris pour localiser « Bonjour bloc ». De cette façon, vous pouvez ajouter un nombre illimité d'instances du bloc personnalisé partout sur votre site.
Dépannage
Le nom de la classe et le nom du fichier doit être la même (classe HelloBlock et /src/Plugin/Block/HelloBlock.php). Si le nom de classe est différent, le bloc apparaît dans la liste des blocs disponibles, mais vous ne serez pas en mesure d'ajouter.
Assurez-vous de vérifier tous les chemins et les noms de fichiers. Votre .php doit être dans le répertoire correctement étiqueté (/ src / Plugin / Bloc /), sinon il ne sera pas découverte par Drupal.
Remarque: L'utilisation des modèles Brindille avec des blocs personnalisés
- Ajouter un crochet _theme dans votre fichier .module. Ne nommez pas la fonction thématisation comme « block__. »- cela ne passera pas toutes les variables vers le bas pour les modèles de brindille. Au lieu de cela, vous pouvez utiliser le nom du module comme préfixe.
- Utilisez « #theme » dans la matrice rendre dans le procédé de construction et de transmettre les variables sur le même niveau que le « #theme » - '#varname.