J'ai créé un bloc en utilisant hook_block_info
et hook_block_theme
et similaires. Mais comment puis-je le thème?
Je l'ai pour retourner un tableau avec les clés 'subject'
et 'content'
. Mais j'ai créé le balisage directement dans le hook_block_view()
crochet et ce n'est pas ce que je veux.
Dans les documents, il est dit que le contenu doit être renvoyé de préférence sous forme de tableau pouvant être rendu et non sous forme de balisage. Mais quel est ce tableau rendable ? Ils disent que ce devrait être des données au lieu du balisage, mais tout ce que je vois dans les exemples, c'est qu'il est juste utilisé comme un wrapper pour le balisage, donc rien n'y a gagné.
Je veux pouvoir en avoir un block--MYMODULE--DELTA.tpl.php
dans mon thème, mais comment l'appeler et comment puis-je transmettre les données au bloc?
Réponses:
La façon dont je fais cela est la suivante ...
Et puis dans un sous-dossier de votre module appelé,
theme
il devrait y avoir un fichier appelémy-template.tpl.php
qui pourrait y avoir ceci:Et si vous le souhaitez, vous pouvez réellement remplacer l'implémentation de module "par défaut" que vous venez de créer
my-module.tpl.php
dans votre thème comme vous le souhaitezblock--MYMODULE--DELTA.tpl.php
.la source
admin/config/development/performance
cliquer sur leclear cache
bouton. Vous pouvez également vider le cache en utilisant drush, c'estdrush cc all
Essayez le module Theme Developer . Lorsque vous l'avez activé, vous pouvez cocher une case dans le coin inférieur gauche de votre page Drupal. Après cela, vous pouvez cliquer sur votre bloc et obtenir des informations utiles sur le thème. Vous pouvez voir les noms de fichiers .tpl.php possibles pour votre bloc par exemple.
Choisissez l'un de ces noms. Le premier est le plus spécifique. Il ne thématisera qu'un bloc. Créez un fichier avec ce nom dans votre dossier de thème s'il n'est pas déjà là. Vous pouvez le mettre dans un sous-dossier si vous souhaitez vous organiser.
Copiez le contenu de block.tpl.php dans votre fichier et commencez à changer les choses comme vous le souhaitez.
Enregistrez votre fichier, videz les caches et rechargez la page.
la source
Il existe déjà un certain nombre de réponses à cette question, mais j'ai essayé de fournir une approche très simpliste. Espérons que nous identifions aux développeurs la structure du tableau attendue par Drupal lors du retour du contenu de votre bloc.
Pour ce faire, j'ai divisé la question en exemples de code distincts en tant que tels,
S'il vous plaît voir une explication complète ici drupal 7 création de blocs personnalisés à thème
la source
Il s'agit d'un ancien article, mais j'ai trouvé une meilleure solution pour remplacer les modèles de bloc à partir d'un module personnalisé pour Drupal 7.
Ajoutez ceci à votre module personnalisé:
Ensuite, vous avez besoin du code suivant:
Il vous suffit de créer
templates/block--my-custom-module.tpl.php
dans le dossier de votre module.J'ai écrit un tutoriel sur ce tutoriel Drupal - Comment remplacer un modèle de bloc à partir d'un module personnalisé
la source