====== Как MACRO ищет шаблоны ======
На данной странице мы не будем вдаваться в детали того, как поиск шаблонов реализован программно - лишь укажем принцип, на основе которого ищутся шаблоны. Отметим, что поиск шаблонов в базовом MACRO существенно отличается от поиска шаблонов, если используется MACRO совместно с пакетом VIEW.
===== Отдельно MACRO пакет =====
По-умолчанию, MACRO ищет шаблоны в папке **templates** относительно корня запущенного приложения, а также относительно путей, указаных в include_path. Мы можете указать другие папки при помощи 4-го аргумента конструктора класса lmbMacroConfig:
class lmbMacroConfig
{
function __construct($cache_dir = null, $is_force_compile = true, $is_force_scan = true,
$tpl_scan_dirs = null, $tags_scan_dirs = null, $filters_scan_dirs = null)
{
[..]
}
}
===== MACRO совместно со VIEW =====
VIEW содержит расширенную реализацию поиска шаблонов. Шаблоны ищутся в папке **templates** по include_path, а также в папках template всех пакетов Limb3.
Найденные пути кешируются, поэтому если шаблон однажды был найден в одном из пакетов, а вы его переместите в иное место, он будет браться из старого места. Кеш найденных путей лежит в файле /var/locators/macro_locator.php.
Обратите внимание, что абсолютные и относительные имена файлов обрабатываются по-разному.
Например, %%{{insert file='/file.html' /}}%% будет искать файл по пути /file.html, а вот %%{{insert file='file.html' /}}%% уже в папках template приложения и пакетах.
Вы можете назначить другие пути, по которым следует искать шаблоны посредством переопределения константы LIMB_TEMPLATES_INCLUDE_PATH, например, так:
define('LIMB_TEMPLATES_INCLUDE_PATH', 'my_path/design;/my/other/path/design_repository;template;limb/*/template');
Пути разделяются точкой и запятой, звездочка означает - любые совпадения.