====== Рендеринг WACT шаблона. Использование пакета WACT ======
Использование пакета WACT отдельно, отличается от его использования с пакетом WEB_APP, поэтому мы выделили отдельный раздел.
===== Настройки шаблонизатора =====
WACT считывает настройки из папки, которую определяет константа **WACT_DEFAULT_CONFIG_DIR**. Константа определяется в файле limb/wact/common.inc.php. При помощи этой константы указывается путь до директории, где хранится файл settings.ini с настройками компилятора. В своем приложении вам необходимо будет переопределить эту константу WACT_DEFAULT_CONFIG_DIR и указать путь до папки, где будет лежать ваш файл settings.ini. Эталон можно взять из папке limb/wact/settings/
Пример файла с настройками:
# should template compiler scan for tags, filter and properties every time
force_scan = 0
# should template compiler recompile templates every time
force_compile = 1
# absolute path to your wact templates cache dir
#cache_dir = limb/wact/cache/
# directory where template compiler looks for source templates
templates_dir = templates/
# directories where all compiler looks for tags, filters and properties
[scan_directories]
0 = limb/wact/src/tags
# list of sax filters that can be applied to compiled template
# see limb/wact/src/compiler/sax_filters
[sax_filters]
Поясним значения опций:
* **force_scan** - указывает, должен ли компилятор на каждый запрос создавать словарь тегов и фильтров. Эта опция практически всегда имеет значение 0, так как эта операция весьма долго выполняется. Словари тегов и фильтров кешируются в определенной папке (см. ниже). Для обновления кэша - нужно вручную очищать эту папку.
* **force_compile** - указывает, должен ли компилятор компилировать шаблон на каждое обращение. Если эта опция имеет значение 0, тогда шаблон будет компилироваться только один раз. Обычно при разработке приложения ставят значение 1, а на продукционном сервере - 0.
* **cache_dir** - указывает абсолютный путь, где хранится кеш шаблонизатора. По-умолчанию, эта опция в файле настроек закомментирована, и кеш хранится в папке limb/wact/cache. Этот путь определяется константой WACT_CACHE_DIR (в файле limb/wact/common.inc.php) - возможно, вы захотите указать свой собственный путь, например, где-то внутри вашего приложения.
* **templates_dir** - указывает на путь, где должны искаться файлы шаблонов.
* **[scan_directories]** - массив путей, где шаблонизатор будет искать теги и фильтры, поддерживаемые шаблонизатором. По-умолчанию, указаны папка внутри пакета WACT, то есть limb/wact/src/tags/.
* **[sax_filters]** - массив фильтров, через которые пропускается компилируемый шаблон. см. папку limb/wact/src/compiler/saxfilters/. Указывается часть названия класса без приставки WACT и без суффикса SaxFilter, например, TagsToLower или Whitespace.
===== Инициализация и рендеринг шаблона =====
Шаблон инициализируется путем создания экземпляра класса WactTemplate() и передачей ему пути до шаблона. Шаблонизатор находит шаблон и компилирует его при необходимости. После инициализации шаблона можно передавать в него переменные, изменять состояние компонентов и т.д. Для вывода отработанного шаблона используется метод WactTemplate :: display(), а для получения результата отбработки можно использовать метод WactTemplate :: capture().
Например:
set('title', 'Super page');
$page->display();
?>
===== Где посмотреть примеры =====
Примеры работы шаблонизатора можно посмотреть в папке limb/wact/examples/. Для того чтобы запустить примеры необходимо создать виртуальный хост на эту папку. Подробности см. в файле README.