Система управления контентом FlexyCMS
Тел. (4822) 57-50-33
info@flexy-systems.ru

Работа с шаблонами

Шаблоны в системе Flexy CMS - комплексная сущность, состоящая из:

  • страницы HTML-кода с вставками PHP-скриптов;
  • таблицы стилей CSS
  • страницы скриптов JavaSctipt

HTML, CSS и JavaScript шаблона хранятся на сервере в виде файлов, поэтому возможно как изменение их из административного раздела, так и прямое ручное редактирование файлов (но не их переименование или ручное создание на диске).

Каталог для хранения шаблонов находится по адресу:

/sites/[каталог сайта]/themes/[каталог темы]/[каталог шаблона]/

Название каталога шаблона состоит из идентификатора шаблона и, если есть, отделённого дефисом постфикса (указывается при создании шаблона и может быть изменён через административный раздел).

Внимание! Не переименовывайте каталог шаблона и не создавайте шаблон вручную на диске - это приведёт к расхождению с информацией о шаблоне, хранящейся в базе данных!

Шаблоны могут быть организованы в виде дерева, то есть любой может принадлежать другому - родительскому.

При обработке раздела стуктуры сайта сначала выполняется привязанная к разделу динамическая страница, затем результат вставляется в указанный для этого раздела шаблон, далее результат обработки шаблона вставляется в родительский и так до корневого шаблона. В результате полностью формируется HTML-страница, которая и отображается в браузере.

Шаблон выполняется в окружении класса Template, поэтому из него могут быть вызваны методы этого класса. Описание основных методов приведено ниже:

$this->processInstance();

Вставляет в шаблон содержимое дочернего шаблона или привязанной к соответствующему разделу сайта динамической страницы.

$this->getTemplatePath();

Возвращает путь до каталога шаблона от корня сайта. Может быть использован, например, для указания пути до изображения, хранящегося в каталоге шаблона.

$this->getTemplateDirectory();

Возвращает полный путь до каталога шаблона от корня файловой системы.

$this->insertStyles();

Вставка в шаблон ранее зарегистрированных стилей (запоминаются при обходе дерева шаблонов, показе форм и т.д. - везде, где вызывается registerStyles)

$this->insertScripts();

Вставка в шаблон ранее зарегистрированных скриптов (запоминаются при обходе дерева шаблонов, показе форм и т.д. - везде, где вызывается registerScripts)

$this->insertMenu($menuId);

Вставляет в шаблон меню $menuId.
Параметр $menuId может быть типа int - в этом случае он считается идентификатором меню, либо типа строкой - тогда он считается названием меню.
Пример использования:

print '';