На Deep-CMS «напал»:

Typical Programmer

Темизация

Deep-CMS поддерживает создание различных тем отображения сайта. Это означает что вы можете легко и просто «переодевать» свой сайт по праздникам или другим знаменательным дням. Так каждый, кто знаком с версткой макетов, сможет создавать свои темы шаблонов для сайта.

Внутри Deep-CMS вообще нет никакого шаблонизатора. Все шаблоны — это html-файлы, содержащие в себе html-разметку с вставками php-скрипта вызывающего простые конструкции или функции с параметрами.

Создание новой темы

Все доступные темы храняться в папке: application/layouts/themes/

Для того чтобы создать свою тему, необходимо в директории, где хранятся все доступные темы шаблонов, создать папку с именем будущей темы, например, пусть это будет папка «main-new-theme».

main-new-theme

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

  • parts
  • protected
  • public

parts

В папке parts хранятся «части» шаблонов. И обязательными файлами в этой папке являются:

  • header.html
  • footer.html

Как можно понять из названий файлов, в них хранятся соответственно — верхняя и нижняя части шаблона, которые подключаются из всех остальных шаблонов стандартным require.

protected

В папке protected хранятся «защищенные» шаблоны темы, которые подключаются в модулях, или каких-либо спецефических ситуациях. Эти шаблоны не доступны в списке выбора шаблонов отображения при создании/редактировании узла в дереве документов.

Обязательным в папке protected является один файл:

  • exception.html

Это шаблон исключений, через который выводятся все ошибки и оповещения системы.

public

В этой папке хранятся все «публичные» шаблоны, которые всегда доступны для отображения в списке выбора шаблонов при создании/редактировании узла в дереве документов.

Обязательным в папке public является один файл:

  • page.html

Это базовый шаблон вывода страницы сайта.

Внимание!

  1. Расширение файлов *.html является обязательным, вне зависимости от назначения конкретного шаблона;
  2. Все шаблоны должны подключаться именно конструкцией require, остальные конструкции (require_once, include, include_once) при подключении использовать запрещено. Это обусловлено внутренней структурой приложения в пользу других возможностей;

Встроенные конструкции и примеры шаблонов

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

  • $_config->layouts->parts
  • $_config->layouts->header
  • $_config->layouts->footer

Это предопределенные переменные, которые можно, а лучше даже нужно, использовать в качестве указания путей подключения одного к другому шаблонов. Подключать шаблоны можно сколько угодно раз. Вложенность подключения не ограничена. Синтаксис подключения шаблонов стандартный:

<?php require $_config->layouts->parts . 'top-menu.html'; ?>
<?php require $_config->layouts->header; ?>

Первая конструкция подключит файл шаблона top-menu.html из папки parts текущей активной темы сайта. Вторая сразу подключит шаблон «шапку», путь до которого хранится в предопределенной переменной конфигурации.

Пример типичной сборки полной страницы из шаблонов

page.html:

<?php require $_config->layouts->header; ?>
    <?=$page_text?>
<?php require $_config->layouts->footer; ?>

header.html:

<!DOCTYPE html>
<html>
  <head>
    <title><?=$page_title?></title>
  </head>
  <body>
    <div id="container">

footer.html:

    </div>
  </body>
</html>

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

Deep: 2013-11-12 03:38:11 (обновлено 2014-01-26 15:15:59)

Оставить комментарий

Комментарии:

protection