====== Рендеринг 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.