Preview

Preview - это облегчённый класс отображения шаблонов, расширяющий класс View .

Пространство имен: \

Расположение файла:lib/base.php

Визуализация шаблона preview

Класс Preview предлагает механизм для чрезвычайно легкого создания шаблонов, который просто вызывает некоторые выражения 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="{{ @BASE.@book[slug] }}">{{ @book.title }}</a>
		</li>
		{~ endforeach ~}
	</ul>
</div>

Методы

build

Собрать разметку

string build ( string $node )

Этот метод строит php-код из заданной разметки, который используется позже в предварительно обработанном шаблоне.

Пример преобразования кода с токеном:

{{ @book.title | esc }}

в:

<?php echo $this->esc($book['title']); ?>

filter

Регистрация фильтра токенов

mixed filter ( [ string $key = NULL [, string $func = NULL ] )

Вы можете использовать этот метод для добавления собственного фильтра токенов шаблона, например

{{ @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("@#$@#", "j&*%", "da*@"); 
		return str_ireplace($bad_words, $replacement_words, $val);
	}
}

Теперь вы можете использовать

{{ @user_comment | badwords }} 

для фильтрации user_comment для BADWORDS. Кроме того , можно объединить несколько фильтров:

{{ @user_comment | badwords, raw }}

Когда функция вызывается без каких-либо параметров, она просто возвращает массив всех зарегистрированных имен фильтров. Когда функция вызывается с параметром, $key но без параметра $func, она возвращает зарегистрированную строку функции.

render

Визуализиция и выдача шаблона с заданным именем файла

string render ( string $file [, string $mime = 'text/html' [, array $hive = NULL [, int $ttl = 0 ]]] )

Аргумент $file содержит путь к файлу, который находится в пределах каких - либо определенных каталогов F3 в UI. Помните, что для вашего удобства пользовательский интерфейс может иметь несколько путей.

Фактически, метод render() сначала пытается загрузить указанный вами шаблон из временной папки TEMP, действующей как файловый кэш для скомпилированных шаблонов. Указанный файл шаблона загружается только при необходимости: F3 определяет, была ли сохранена более новая версия файла шаблона, и затем он создает файл представления на основе php и только после этого снова отображает представление php.

После визуализации F3 экранирует содержимое в соответствии с системной переменной ESCAPE и устанавливает соответствующее Content-Type значение HTTP-заголовка. Если вы хотите, чтобы ответ был возвращен как содержимое JSON, XML или электронной почты, просто измените $mime параметр типа в соответствии с вашими потребностями. (кодировка содержимого определяется системной переменной ENCODING )

Аргумент $hive позволяет использовать явный набор переменных для этого шаблона. По умолчанию обработанный шаблон имеет доступ ко всему улью F3 (hive) со всеми его переменными.

Аргумент $ttl определяет в секундах время жизни в кэше. Когда $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

resolve

Рендеринг строки шаблона

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>&amp;lt;b&amp;gt;F3 rocks&lt;/b&amp;gt;</p>

token

Преобразовать токен в переменную

string token ( string $str )

Пример:

echo $template->token ('My {{@color}} car looks nice');
 
// returns the string  'My $color car looks nice'
Печать/экспорт