Содержание

Как 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');

Пути разделяются точкой и запятой, звездочка означает - любые совпадения.