- PVSM.RU - https://www.pvsm.ru -
В этом уроке я предлагаю рассмотреть, как делается минимальный модуль для Concrete5 CMS (в терминологии системы модули называются блоками) на примере модуля «Разделитель».
Допущу себе небольшое отступление и упомяну, что при разработке расширений для Concrete5 широко используется схема MVC [1], по этой причине я бы рекомендовал незнакомым с ней, сначала разрбраться что это такое и только потом продолжить чтение.
В самом простом модуле нам необходимы всего 3 файла в директории blocks/horizintal_line:
По названию уже понятно что это файл контроллера. Все, кто знаком с MVС, думаю, понимают что без него нам никак не обойтись. Контроллер содержит в себе управляющий код модуля, отвечающий за обработку всех действий, производимых модулем. Конкретно этот контроллер содержит класс HorizintalLineBlockController наследуемый от базового класса BlockController'а, выполняющего все необходимые нам, в данном случае, действия (установка, вывод и т.п.). Наш же класс, содержит определения для необходимых полей класса, таких как название модуля, описание, настройки кеширования.
<?php defined('C5_EXECUTE') or die("Access Denied.");
class HorizintalLineBlockController extends BlockController {
// название модуля для списка модулей
protected $btName = 'Разделитель';
// краткое описание модуля
protected $btDescription = 'Модуль содержит тег HR и используется для разделения блоков на странице';
// кэшировать вывод модуля для обычных посетителей
protected $btCacheBlockOutput = true;
// кэшировать вывод модуля для зарегистрированных пользователей
protected $btCacheBlockOutputForRegisteredUsers = true;
// время жизни кэша
protected $btCacheBlockOutputLifetime = CACHE_LIFETIME;
}
Обращу внимание, что название директории с модулем и и имя контроллера должны соответствовать друг другу ибо таковы соглашения об именовании. Соответствие определяется так:
Если не соблюдать соглашение, то система просто не найдет наш модуль и не сможет его установить.
Этот файл содержит в себе PHP и HTML, которые отвечают за построение вывода содержимого модуля на странице по-умолчанию. В нашем примере файл предельно прост и содержит всего две строки.
<?php defined('C5_EXECUTE') or die("Access Denied.");?>
<hr />
Для любого модуля можно сделать неограниченное количество аналогов view.php в поддиректории templates нашего модуля, для изменения его внешнего вида. Эти «отображения» можно подключать к модулю прямо через интерфейс CMS без необходимости залезать в код.
Пиктограмма модуля, которая вводится в списке модулей при его добавлении на страницу.
Примечание: во всех файлах PHP, которые делаются для работы под управлением этой CMS, необходимо первой строкой включать следующий код:
<?php defined('C5_EXECUTE') or die("Access Denied.");?>
На этом первый урок закончен, если у сообщества будет интерес, то я продолжу.
Сайт CMS: concrete5.org [2]
Русское сообщество: forum.concrete5russia.ru [3]
Русские сборки: первая [4] и вторая [5]
Этот модуль на GitHub: horizintal_line [6]
Автор: ktarasov
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cms/46427
Ссылки в тексте:
[1] MVC: http://ru.wikipedia.org/wiki/Model-View-Controller
[2] concrete5.org: http://www.concrete5.org/
[3] forum.concrete5russia.ru: http://forum.concrete5russia.ru/
[4] первая: http://www.concrete5russia.ru/%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C/concrete5-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F/
[5] вторая: http://peredelka-saitov.ru/peredelka-sayta/concrete5-russian-edition/
[6] horizintal_line: https://github.com/ktarasov/horizintal_line
[7] Источник: http://habrahabr.ru/post/198734/
Нажмите здесь для печати.