Шаблон – это не просто дизайн и внешний вид сайта, шаблон – это общая совокупность функций публичной части интернет-магазина. С помощью шаблона можно манипулировать логикой работы движка и создавать новые обработчики событий.
В Moguta.CMS все шаблоны хранятся в директории сайта ./mg-templates/ и отвечают принципам паттерна программирования MVC.
В движке Moguta.CMS, программная логика отделена от внешнего вида страницы, это позволят не задумываясь о последствиях изменять HTML код так как это необходимо.
В папке шаблона Moguta.CMS могут существовать папки, переопределяющие стандартные сущности MVC, обрабатываемые движком:
Внутри этих папок могут находиться одноименные файлы переопределяющие работу страниц сайта, формируемых из файлов ядра и папки mg-core/.
В большинстве шаблонов для изменения внешнего вида сайта нам понадобится только папка views. Папки /models и /controllers могут потребоваться для реализации уникальной логики обработки страниц, например, добавления дополнительных полей в форму обратной связи и т.п. При разработке неподдерживаемого в дальнейшем шаблона, не рекомендуется переопределять модели и контролеры.
Чтобы движок распознал новый шаблон и отобразил его в разделе выбора шаблона в админке, необходимо создать два таких файла в папке с шаблоном.
В template.php нужно вставить верстку макета сайта, подобную этой :
<doctype>
<html>
<head>
<?php mgMeta("meta","css","jquery"); ?>
</head>
<body>
<!--Элементы интерфейса -->
<?php layout('content'); ?>
<?php mgMeta("js"); ?>
</body>
</html>
А в /css/style.css прописать стили для верстки шаблона. Файл стилей шаблона /css/style.css, а также стили плагинов активных в админке в разделе плагинов, будут подключены движком на месте вставки функции mgMeta(); ?>
Папка /layout в пользовательских шаблонах содержит верстку HTML компонентов шаблона, а также HTML верстку писем-уведомлений с сайта. В данной папке можно создавать собственные компоненты верстки по аналогии с уже имеющимися. Если название файла совпадает с названием файла в папке mg-core/layout/ , то по приоритету будет обработан файл из папки шаблона. Подробнее о работе с layouts.
Название файла говорит само за себя. В данном файле должна располагаться верстка 404-й страницы с сообщением о несуществовании запрашиваемого контента.
Данный файл может понадобиться при обработке пользовательских ajax запросов к движку.
Класс находящися внутри файла предназначен для обработки пользовательских запросов и работы с базой данных сайта посредствам AJAX запросов.
Класс обязательно должен наследоваться от класса движка Actioner и содержать в себе пользовательские методы, вызываемые AJAX'ом.
Методы данного класса могут быть вызваны из JS скриптов шаблона следующим образом:
$.ajax({
type: "POST",
url: "ajax",
data: {
action: "getSearchData", // название действия в пользовательском класса Ajaxuser
actionerClass: "Ajaxuser", // ajaxuser.php - в папке шаблона
param1: text,
param2: text
},
});
Где:
"getSearchData" – название метода в пользовательском классе Ajaxuser;
"Ajaxuser" – класс обработчик запроса в файле ajaxuser.php.
В файле functions.php шаблона можно прописать пользовательские PHP функции и использовать их в дальнейшем в файлах-представлений шаблона из папки views/. Здесь же можно прописать собственные обработчики хуков движка, аналогично работе плагинов.
Дополнительные папки, в которых хранятся изображения и js для работы шаблона. В папке JS также могут быть размещены модифицированные файлы из папки mg-core/script/standard/js/ Подробнее о переопределении JS файлов движка. Папка шаблона images/ доступна для прососмотра встроенным файловым менеджером из панели управления в разделе редактирования шаблона. Поэтому в папке images/ могут появиться две папки .tmb/ и .quarantine/ с миниатюрами изображений созданные файловым менеджером (отключить их создание можно в файле config.ini).