Содержание
Введение в шаблоны InstantCMS
Шаблоны InstantCMS находятся в поддиректориях директории /templates/
. Директория шаблона может содержать CSS таблицы стилей, JavaScript файлы, файлы шаблонов вывода, файл функций-хелперов, форму опций шаблона и различные картинки.
К примеру, шаблон под названием «test» будет расположен в директории /templates/test/
.
По-умолчанию в InstantCMS один шаблон «default». Внимательно изучите составляющие его файлы, чтобы лучше понять, как создать свой собственный шаблон.
В InstantCMS не используется никаких шаблонизаторов, например Smarty или Twig. Весь код написан на чистом PHP. Шаблоны в InstantCMS выполняют главную роль - отделение отображения от логики.
Какие бывают файлы шаблонов?
Говоря о файлах-шаблонах, мы подразумеваем некие файлы с двойным расширением .tpl.php
. Т.е. это обычные PHP файлы, а второе расширение .tpl показывает, что это файл шаблона. То, что перед .tpl.php
в полном названии файла - есть имя шаблона. Например, файл имеет название index.tpl.php
- движок оперирует лишь именем index
.
Шаблон InstantCMS состоит из общего макета (их может быть более одного) и файлов-шаблонов для вывода.
Общий макет — это основной шаблон всех страниц сайта, содержащий теги <html>, <head> и <body>. Внутри него выводятся шаблоны компонентов и виджетов. По-умолчанию движок использует два макета: main.tpl.php - для самого сайта и admin.tpl.php для админки.
Файлы шаблонов вывода предназначены для показа результатов работы контроллеров, виджетов или иных вспомогательных действий, например сообщений об ошибках, вывод полей форм.
Перечень стандартных файлов и директорий шаблона
Путь к файлам в таблицах ниже указывается относительно корневой директории шаблона, т.е. если шаблон у нас лежит в директории /templates/test/
, то пути ниже указывается относительно /templates/test/
.
Обязательные файлы шаблона.
Путь к файлу | Назначение |
---|---|
main.tpl.php | Основной макет шаблона |
scheme.html | Схема позиций шаблона |
Остальные файлы и директории
Путь к файлу или директории | Назначение |
---|---|
options.form.php | файл формы опций шаблона |
assets/errors/ | шаблоны ошибок, 404 страницы и сообщения о том, что сайт закрыт |
assets/fields/ | шаблоны полей форм |
assets/ui/ | шаблоны «хлебных крошек», панели фильтра контента, форм, меню и списков записей админки |
content/ | шаблоны списков записей и страниц записи типов контента |
controllers/КОНТРОЛЛЕР/ | шаблоны фронтэнда контроллера |
controllers/КОНТРОЛЛЕР/styles.css | CSS файл стилей контроллера |
controllers/КОНТРОЛЛЕР/backend/ | шаблоны бэкенда контроллера |
controllers/КОНТРОЛЛЕР/backend/styles.css | CSS файл стилей бэкенда контроллера |
controllers/КОНТРОЛЛЕР/widgets/ВИДЖЕТ/ | шаблоны виджета контроллера |
css/ | файлы CSS стилей шаблона, подключаемые в макете |
images/ | изображения, используемые в шаблоне |
js/ | JavaScript скрипты, используемые в шаблоне |
js/fields/ИМЯ_ПОЛЯ.js | JavaScript скрипт, автоматически подключаемый к шаблону поля |
profiles/options.form.php | форма опций для стилизации профилей пользователей |
profiles/styler.php | набор динамически созданных CSS стилей для стилизации профилей пользователе |
widgets/ | директория шаблонов виджетов, не привязанных к контроллерам |
widgets/wrapper*.tpl.php | файлы-обертки в которых выводится результат работы виджета |
Как движок работает с файлами шаблонов
В InstantCMS есть механизм наследования файлов шаблонов. Это значит, что при подключении нужного файла шаблона, css и javascript файлов движок сначала ищет его в текущем шаблоне, а потом, если указана цепочка наследования, ищет в других шаблонах. Корнем цепочки всегда является шаблон default. Подробнее о механизме наследования описано здесь.