J'ai quelques non-nœud données dans un module personnalisé de mon et je voudrais invoquer un modèle pour afficher les données. Ce modèle peut être réutilisé pour la sortie de courrier électronique, et je voudrais essentiellement simplement amorcer Drupal et utiliser le modèle si nécessaire.Drupal: Comment appeler un modèle dans un module?
Je pensais que je pouvais faire quelque chose comme:
$html = theme('verysmallsnippet', $my_fancy_data_structure);
... puis créez un fichier verysmallsnippet.tpl.php
dans le dossier thème actif et attendent ensuite Drupal pour trouver le fichier de modèle et d'évaluer le modèle avec les arguments passés à la fonction de thème. Est-ce une vaste interprétation trop simpliste du fonctionnement du moteur de gabarit - ou dois-je d'abord configurer le registre de thèmes? Ou quoi? J'ai regardé this question, ainsi que la documentation theme, et je suis un peu perdu.
Oh, en fait cela met beaucoup de choses ensemble dans ma tête, en particulier, comment le fichier template "sait comment nommer les variables" dans le template. Je vais enquêter sur le guide thématique. J'avais vu quelque chose qui était plus clair que les deux choses que j'ai énumérées mais qui était incapable de le retrouver en cherchant. Merci beaucoup! – cgp
Corrigez-moi si je me trompe ici, mais pour "informer le registre des thèmes de ma modification de l'implémentation de hook_theme", je devrais vider le cache soit par le menu admin, soit en utilisant l'appel drupal_rebuild_theme_registry(). – cgp
@altCognito: Heureux d'avoir aidé. En ce qui concerne le "savoir comment nommer les variables" dans la partie template, vous pouvez jeter un oeil particulier au concept des fonctions 'template_preprocess()' dans les docs - l'idée de base est que vous passez un minimum de les données nécessaires à votre appel initial de theme(), et la fonction preprocess prend soin de 'expand' dans toutes les différentes variables nécessaires dans le template (en d'autres termes, garder la logique de codage hors du template et la mettre dans la fonction preprocess , comme par exemple créer des liens appropriés à partir de chemins, calculer des informations de pager, etc.) –