2015-12-07 4 views
0

Мне было интересно, возможно ли каким-либо образом отобразить часть кода HTML, если это не лежит внутри фактического .html-файла.Fat Free Framework 3 визуализирует произвольный HTML (не из файлов)

Вы обычно делаете:

$template = new Template; 
echo $template->render('whatever.html'); 

Но я бы очень хотел сделать:

$template = new Template; 
$rendered_content = $template->render($my_html_code); 

Причина: Я создал несколько шаблонов электронных писем, и было бы здорово, если бы я мог бы использовать F3, чтобы заменить переменные-заполнители, которые я вложил в них, и иметь готовый готовый HTML-код для отправки по электронной почте.

Я знаю, что, возможно, я мог бы свернуть шаблон в файл temp .html, но это звучит немного уродливо для меня, и я бы предпочел не проходить этот путь, если не доступны другие варианты.

ответ

4

Вы ищете метод resolve():

$tpl = new Template; 
$rendered_content = $tpl->resolve($my_html_code); 

Этот метод достаточно для замены «шаблонные переменные», такие как My name is {{ @name }}.

Если вы намерены использовать теги шаблонов (<repeat>, <check>, и т.д ..), вам нужно сначала parse() строки, а затем передать результат resolve(). Например:

$tpl = new Template; 
$rendered_content = $tpl->resolve($tpl->parse($my_html_code)); 
+0

Nice. Мы еще не совсем там. Метод 'resolve' не очень похож на массивы. В тегах '' я получаю: '' и все взорвано. Интересно, почему? – Seether

+0

Метод 'resolve()' достаточно для замены «переменных-заполнителей», как вы просили. Если вы также намерены использовать полный набор тегов шаблона, вам нужно сначала 'parse()' string и передать результат в 'resolve()'. Я уточню свой ответ. – xfra35

+0

Gotcha. Я решил с вашим вторым комментарием даже до того, как вы отредактировали вопрос. Похоже, у нас есть победитель ... спасибо :) – Seether