Предварительный просмотр
Предварительный просмотр-это легкий класс шаблонизатора, который расширяет класс представления.
Пространство имен:
\
Расположение файла: lib/base.php
Класс Preview Template предлагает механизм чрезвычайно легкого шаблонирования, который просто вызывает некоторые php-выражения, завернутые в
{~ ~}
управляющие символы. Это полезно для любого типа стиля шаблона, такого как XML/HTML , hamlили что-то еще.Давайте рассмотрим простой пример:
<div>
<h1>My favorite books</h1>
<ul>
{~ foreach (@books as @id=>@book): ~}
<li>{~ if (@book.starred): ~}<i class="icon-star"></i>{~ else: ~}<i class="icon-normal">{~ endif ~}
<a href="{{ @[email protected][slug] }}">{{ @book.title }}</a>
</li>
{~ endforeach ~}
</ul>
</div>
Сборка разметки
string build ( string $node )
Этот метод строит php-код из заданной разметки, которая используется позже в предварительно отрисованном шаблоне. Информаци я об этом методе становится полезной при создании новых расширений шаблонов или пользовательских обработчиков тегов.
В Примере он преобразует этот кусок токена:
{{ @book.title | esc }}
в:
<?php echo $this->esc($book['title']); ?>
Фильтр регистрационных токенов
mixed filter ( [ string $key = NULL [, string $func = NULL ] )
Вы можете использовать этот метод, чтобы добавить свой собственный шаблон token filter like
{{ @content | myfilter }}
. Например:\Preview::instance()->filter('badwords','\Helper::instance()->badwords');
class Helper extends \Prefab {
function badwords($val) {
$bad_words = array("badword","jerk","damn");
$replacement_words = array("@#[email protected]#", "j&*%", "da*@");
return str_ireplace($bad_words, $replacement_words, $val);
}
}
Теперь вы можете использовать
{{ @user_comment | badwords }}user_comment
VAR для фильтрации плохих слов. Также можно комбинировать несколько фильтров: {{ @user_comment | badwords, raw }}
.Когда функция вызывается без какого-либо параметра, она просто возвращает массив всех зарегистрированных имен фильтров. Когда функция вызывается с
$key$func
параметром, но без него, она возвращает зарегистрированную строку функции.Визуализация и возврат шаблона заданного его именем файла
string render ( string $file [, string $mime = 'text/html' [, array $hive = NULL [, int $ttl = 0 ]]] )
$file
Аргумент ожидает путь к файлу, который находится в пределах любых определенных каталогов системными переменными пользовательского интерфейса F3. Помните, что для вашего удобства пользовательский интерфейс может иметь несколько путей.На самом деле метод рендеринга сначала пытается загрузить указанный шаблон из временной папки TEMP, действующей в качестве файлового кэша для скомпилированных шаблонов. Указанный файл шаблона загружается только в случае необходимости: F3 достаточно умен, чтобы определить, была ли сохранена более новая версия файла шаблона, а затем он создает файл представления на основе php и только затем снова визуализирует представление php.
После визуализации F3 экранирует содержимое в соответствии с системной переменной ESCAPE и устанавливает соответствующее
Content-Type:
значение заголовка HTTP. Если вы хотите, чтобы ответ возвращался в виде JSON, XML или содержимого электронной почты, просто измените параметр $mime
type в соответствии с вашими потребностями. (В то время как кодировка содержимого определяется системной переменной кодирования)$hive
Аргумент позволяет использовать явный массив переменных для этого шаблона. По умолчанию визуализированный шаблон имеет доступ ко всему улью F3 со всеми его переменными.$ttl
Аргумент указывает в секундах время жизни в кэше F3 для скомпилированного на основе php файла представления. Когда a $ttl
будет задано, F3 сохранит скомпилированное представление в кэше. При следующем запросе, если заданное время $ttl
прошло, скомпилированное представление будет перестроено из шаблона и снова сохранено в кэше для другого цикла.Примеры:
echo $tmpl->render('layout.html'); // assumes layout.html is in the UI folder
$flow = $tmpl->render('widgets/tweeter-feeds.html', 'application/json', NULL, 300 ); // cache for 5 minutes
Строка шаблона рендеринга
string resolve ( string $str [, array $hive = NULL ] )
Пример:
$tmpl = \Preview::instance();
$f3->set('title','<b>F3 rocks</b>');
$content = '<p>{{ @title | esc }}</p>';
echo $tmpl->resolve($content);
// return: <p>&lt;b&gt;F3 rocks</b&gt;</p>
Преобразование токена в переменную
string token ( string $str )
Пример:
echo $template->token ('My {{@color}} car looks nice');
// returns the string 'My $color car looks nice'
Last modified 2yr ago