2016-06-27 21 views
0

Die display-Methode in Smarty konvertiert die Smarty-Vorlage in HTML und gibt diese dann an die Seite aus.Ist es möglich, die Smarty-Vorlage in HTML zu konvertieren, ohne sie auf die Seite auszugeben?

Gibt es eine Möglichkeit, dass ich eine Smarty-Vorlage in HTML konvertieren kann, und den Inhalt solcher in einer Variablen speichern?

Ich möchte Smarty verwenden, um eine E-Mail-Vorlage zu rendern, aber dann diese E-Mail offenbar an einen Benutzer senden.

+0

@ AD7six Es gibt andere Inhalte, die ich auf meiner Seite, und ich bin bereits Ausgabepufferung verwenden, um 'Header'-Umleitungen zu handhaben. – think123

Antwort

1

Sie können es in eine Variable mit Smarty _compile_source Funktion und Ausgabepufferung wie in

function CompileSmartyTemplate(&$smarty,$template) { 
$compiled = ''; 
$smarty->_compile_source('evaluated template', $template, $compiled); 
ob_start(); 
$smarty->_eval('?>' . $compiled); 
$compiled = ob_get_contents(); 
ob_end_clean();  
return $compiled; 
} 

speichern und

dann
$html = CompileSmartyTemplate($smarty,$template);