Submitted by Xenonmax on
Bonjour,
Je viens ici car je tourne en rond et je n'arrive pas à trouver de solution sur le net.
La problématique est que je souhaite récupérer le code HTML que la fonction render () génère. En effet j'ai un module qui me permet de générer une page dans drupal, celle ci affiche à l'écran le code HTML grâce à un tpl.php, ce que je souhaite c'est à partir de mon module récupérer ce code pour le traiter ultérieurement.
Actuellement j'ai ce code :
$param['test'] = 'test';
// Render
$render = render(theme('newsletter', $param));
return $render;
Ce code fonctionne pour l'affichage sur le site, mais pas moyen de récupérer le code HTML pour l'utiliser dans mon module.
En l'attente de vos réponses.
Cordialement,
Maxime.
Salut je ne sais pas ce que
Permalien Soumis par Thomas.emerya le 16 Octobre, 2013 - 12:20
Salut je ne sais pas ce que tu test mais si render ^print c'est que c'est du html!
Tu peux toujours utilisé Drupal_render() qui elle retourne toujours du html mais très franchement elle est sensiblement identique à render cf ma phrase d'au dessus. https://api.drupal.org/api/drupal/includes%21common.inc/function/render/7
Ce que je veux exactement, c
Permalien Soumis par Xenonmax le 16 Octobre, 2013 - 13:32
Ce que je veux exactement, c'est récupérer le code HTML généré avec render(theme()) pour l'envoyer à une API.
Comme le tempate est modifiable par un intégrateur, je me dois de récupérer le code que ce template va générer.
Hors en faisant un var_dump() de render(theme()) il me met un string vide. Avec Drupal_render il me renvoie NULL.
(En revanche il n'y a pas ce problème dans l'affichage de la page.)
Problème résolu !
Permalien Soumis par Xenonmax le 16 Octobre, 2013 - 14:54
Problème résolu !
En fait quand j'ai déclaré mon template il fallait mettre cette syntaxe :
function newsletter_theme() {
return array (
'newsletter' => array (
'template' => 'newsletter',
'path' => drupal_get_path('theme', variable_get('theme_default', NULL)) . '/templates',
)
);
}
Comme on demande à récupérer le code dans l'administration du module, le thème qu'il récupère est le thème de l'administration. En rajoutant le paramètre 'path', il va pouvoir charger le thème du site dans le module.