toropyga / templates
Libraries for working with templates from Toropyga
Requires
- php: >=5.1.0
README
Класс обработки шаблонов
Описание и примеры использования PHP класса обработки шаблонов
Содержание
Общие сведения
Класс Templates предназначен для обработки и вывода на экран HTML шаблонов. Для работы необходимо наличие PHP версии 4 и выше.
Предполагаемая файловая структура стилей:
(ROOT_PATH)
|
| +-------------------------------+
|-| общая папка стилей (TMPL_DIR) |
| +-------------------------------+
| |
| | +----------------------------+
| |-| папка стиля 1 (TMPL_STYLE) |
| | +----------------------------+
| |
| | +----------------------------+
| |-| папка стиля 2 (TMPL_STYLE) |
| +----------------------------+
|
| +------------------------------+
|-| временные файлы (TMPL_CACHE) |
| +------------------------------+
Установка
Рекомендуемый способ установки библиотеки NetContent с использованием Composer:
composer require toropyga/templates
или просто скачайте и сохраните библиотеку в нужную директорию.
Предопределяемые константы
Перед началом работы можно предопределить константы:
ROOT_PATH - полный путь к корневой директории
TMPL_DIR - путь к директории (папке), относительно корневой директории, в которой расположены директории (папки) стилей (шаблонов)
TMPL_STYLE - имя директории (папки) в которой расположены шаблоны по умолчанию
TMPL_CACHE - путь к директории, относительно корневой директории, в которой будут сохраняться обработанные шаблоны
Шаблоны
Все шаблоны верстаются как обыкновенные html страницы.
В местах, где необходимо вставить значение переменной прописывается код следующего вида:
{$имя_переменной}, если необходимо выбрать значение из массива, то пишем - {$имя_массива['ключ_массива']} и т.д.,
если ключом массива является переменная - запись принимает вид {$имя_массива[$имя_переменной]}
Если из всего шаблона надо выделить только небольшой участок (блок), то этот участок обрамляется тегами комментария следующего вида:
<!-- tmplblock: begin --> сам блок <!-- tmplblock: end -->
Если в шаблон необходимо вставить php код, то он размешается в теге комментария следующего вида:
<!-- tmplphp: $a = 20; for ($i=1; $i <= $a; $i++) { --> {$i}<br> <!-- tmplphp: } -->
Если в шаблон необходимо подключить ещё один шаблон, то прописываем следующий код:
{tmplinclude: имя_подключаемого_файла}
Если включаем необрабатываемый кусок PHP кода то обрамляем его конструкцией вида:
##static_begin## сам код ##static_end##
Например:
<!-- tmplphp: $a = 1; $b = 2; echo sum($a, $b); ##static_begin## function sum($a, $b) { return ($a+$b); } ##static_end## -->
Вставка PHP-кода внутри тэга - tmpltag="# код #"
<input type="checkbox" id="remember" name="admin[remember]" tmpltag="#if ($remember) {#" checked tmpltag="#}#" value="1" class="non">
Вызов класса
Подключение файла класса
require_once("Templates.php");
или с использованием composer
require_once("vendor/autoload.php");
Инициируем класс обработки шаблонов
$TMPL = new FYN\Templates();
Устанавливаем стиль страницы
$TMPL->setStyle($style_folder);
Передаём шаблонам значения переменных
$TMPL->assign($template_data); $TMPL->assign(array('page'=>$PAGE));
Вывод шаблона на экран
$TMPL->output($template_file);
Переменные
Имя переменной шаблона должно соответствовать ключу ассоциативного массива значение которого - это значение переменной в шаблоне.
Например.
Шаблон (hello.html):
Hello, {$user_name}!
PHP обработчик
$template_file = "hello.html"; $template_data = array("user_name" => "Alex"); $TMPL = new FYN\Templates(); $TMPL->assign($template_data); $TMPL->output($template_file);
Результат:
Hello, Alex!