Message d'avertissement

The subscription service is currently unavailable. Please try again later.

[Résolu] Récupérer le code HTML d'un render

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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.

Forum : 
Version de Drupal : 

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 !
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.