Zira CMS переезжает на GitHub. Новый адрес сайта: https://ziracms.github.io

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

Создать собственную тему для Zira CMS совсем не сложно. Чтобы ускорить процесс разработки, вы можете взять за основу любую из существущих тем.

Темы Zira CMS хранятся в папке themes. Все темы используют библиотеку Bootsrap 3 для создания, так называемой, адаптивной вёрстки. Благодаря этому, страницы сайта прекрасно смотрятся как на десктопах, так и на мобильных устройствах. Подключается библиотека автоматически, при вызове метода layout_head() в файле схемы.

Тема должна иметь четыре схемы - схема с левой и правой колонкой (layout.php), схема с левой колонкой (layout-left.php), схема с правой колонкой (layout-right.php) и схема без колонок (layout-wide.php). Система выбирает соответствующий файл в зависимости от настроек.

Но перед тем, как начать, сначала нужно создать мета-файл темы (theme.meta), из которого система считывает информацию о теме. Данный файл представляет из себя файл конфигурации в формате ini и должен содержать следующие строки:

 

[meta]
name = "Моя тема"
preview = screenshot
author = Zira

Как видно из примера, файл должен начинаться с секции [meta]. Далее указывается название темы, файл скриншота и автор. Скриншот должен иметь расширение "jpg".

Эта информация используется системой при выводе списка установленных тем.

Как уже говорилось выше, тема включает в себя четыре основных макета, каждый из которых отвечает за отображение тех или иных ячеек. Так, например, схема с левой колонкой имеет ячейку "sidebar_left", но не имеет ячейки "sidebar_right". Соответственно, схема с правой колонкой имеет ячейку "sidebar_right", но не имеет ячейки "sidebar_left". Ячейки используются системой для вывода содержания виджетов. В какой ячейке будет отображаться виджет задается полем "Расположение" в окне настроек виджета.

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

Список методов:

  • layout_head() - ячейка HEAD (подключает нужные файлы css и скрипты)
  • layout_body_top() - начало тега BODY
  • layout_header() - шапка
  • layout_sidebar_left() - левая колонка
  • layout_sidebar_right() - правая колонка
  • layout_content_top() - содержимое перед основным материалом
  • layout_content() - основной материал
  • layout_content_bottom() - содержимое после основного материала
  • layout_footer() - подвал
  • layout_body_bottom() - конец тега BODY

В файле макета вызов метода должен распологаться между тегами <?php и ?>. Например,

 

 <?php layout_content(); ?>

Данные методы осуществляют вывод содержимого, а не возврат. Поэтому использовать функцию echo не требуется.

Метод layout_content() предназначен для вывода основного материала страницы. Он формируется системой в зависимости от типа страницы. При этом, содержимое генерируется в отдельном шаблоне. Так, например, страницы записей используют шаблон page.php, в котором формируется отображение статьи. Получившийся результат, затем подставляется в текущую схему, при вызове метода layout_content().

Другие типы страниц могут использовать собственный шаблон при формировании основного материала.

 

Zira CMS, при необходимости, позволяет включить в тему дополнительные файлы схем. Для этого, создайте папку layouts и поместите туда файл схемы.

Если при генерации страницы какой-либо шаблон не будет найден в папке используемой темы, то система автоматически подключит шаблон из темы по-умолчанию (Zira). Таким образом, ваша тема может не содержать шаблоны панели управления (папка dash) и система при этом будет функционировать нормально.

Файлы стилей css хранятся в папке assets/css. Файл main.css отвечает за внешний вид сайта, файл editor.css - за отображение текста в редакторе, а файл desk.css - за отображение окон панели управления (если последний отсутствует, то будет использован соответствующий файл из темы по-умолчанию).

Помимо стилей темы, система подключает css-файлы модулей. В основном, в этих файлах содержатся правила, которые должны использоваться вне зависимости от темы. Однако, вы можете переписать и включить их в файл main.css вашей темы.

При необходимости, система также подключает стили слайдера и галереи. Их тоже можно переписать, но тут нужно учитывать один момент. Если включено кэширование, то системные css-файлы кэшируются в один файл. При этом, они будут выводиться до подключения файлов темы. Если-же кэширование отключено, то системные css-файлы подключаются по-востребованию и могут распологаться ниже файлов темы. Это значит, что в некоторых случаях, для перезаписи правил css, может потребоваться повышение приоритета с использованием ключевого слова !important. Рекомендуется тестировать тему, как при включённом кэшировании, так и без него.

 

Начиная с версии 0.5.2 файл main.css выводится последним даже при включённом кэшировании!

Если у вас возникнут какие-либо трудности при создании темы, вы всегда можете задать вопрос на форуме поддержки Zira CMS.

Комментарии(4)

  • Alex

    Очень понравилась CMS. Красивая и современная, хорошие толковые модули, еще и бесплатно. Но есть одно но, какое-то упрощение планируется ? Вот сверстал Html шаблон, достаточно сложный не на бутстрапе, не типичный, и я так понимаю натянуть не выйдет. Может планируете добавить упрощенную систему? к примеру использование разных функций как к примеру на Modx Revo, т.е. я просто закинул html шаблон и раскидал по теме разные чанки, ну или как пример getsimple, закинул шаблон - раскидал разные функции.

    08.04.2018   0   0  
  • Dro1d .Ru Dro1d .Ru   Alex

    Честно говоря, не вижу никаких проблем "натянуть" любой дизайн на движок. Базовые знания php нужны, но это не значит, что нужно писать какой-либо код, достаточно понимать что он делает, чтобы при внесении правок, не сделать ошибку. Bootstrap нужен, т.к он широко используется в системе, да и с ним помоему, работать даже легче, чем без него.
    С modX работал, но что-то мне она показалась неудобной. Хотя, это моё личное, субъективное мнение 😌✌ На одном форуме была дискуссия по поводу шаблонизаторов, но я придерживаюсь точки зрения, что ничего лучше самого php быть не может, ведь он изначально именно для этого и создавался, чтобы интерпретатор мог парсить вставки в html-коде. Я понимаю, что я рассуждаю с точки зрения программиста, но чтобы разобраться как работают чанки и сниппеты в modX нужно всеравно потратить время на изучение документации :)

    08.04.2018   1   0  
  • Виктор

    Не программисту натянуть готовый html шаблон на CMS будет практически невозможно. Кроме файлов layouts в корне темы есть ещё и папки к модулям с кучей файлов. В файлах полно непонятных конструкций вида:
    <?php if (!empty($records)) Zira\View::renderView(array(
    'class' => 'records',
    'records' => $records,
    'settings' => array()
    ), 'zira/list'); ?>
    CMS интересная, но после 2х недель мучений с адаптацией темы хочется плюнуть на это дело.
    Надо быть программистом, чтобы адаптировать верстку к CMS, логика и представление смешаны.
    Без подробного мануала с объяснением всех переменных движка и какие фрагменты кода откуда берутся, просто не обойтись.

    06.05.2017   3   0  
  • Dro1d .Ru Dro1d .Ru   Виктор

    Да, базовые знания PHP нужны, согласен. Но если вы научитесь разбираться в коде - это будет вам плюс!
    На самом деле код совсем не сложный ;)

    06.05.2017   5   5  
, чтобы оставить комментарий