Допущу себе небольшое отступление и упомяну, что при разработке расширений для Concrete5 широко используется схема MVC, по этой причине я бы рекомендовал незнакомым с ней, сначала разрбраться что это такое и только потом продолжить чтение.
В самом простом модуле нам необходимы всего 3 файла в директории blocks/horizintal_line:
- controller.php
- view.php
- icon.png
controller.php
По названию уже понятно что это файл контроллера. Все, кто знаком с 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; }
Обращу внимание, что название директории с модулем и и имя контроллера должны соответствовать друг другу ибо таковы соглашения об именовании. Соответствие определяется так:
- берем название директории
- делаем заглавными первую букву и все первые буквы идущие после символа подчеркивания, если таковой есть, вот так Horizintal_Line
- убираем символы подчеркивания, получаем HorizintalLine
- в конце добавляем название класса родительского контроллера BlockController и получаем HorizintalLineBlockController
view.php
Этот файл содержит в себе PHP и HTML, которые отвечают за построение вывода содержимого модуля на странице по-умолчанию. В нашем примере файл предельно прост и содержит всего две строки.
<?php defined('C5_EXECUTE') or die("Access Denied.");?> <hr />
Для любого модуля можно сделать неограниченное количество аналогов view.php в поддиректории templates нашего модуля, для изменения внешнего его вида. Эти «отображения» можно подключать к модулю прямо через интерфейс CMS без необходимости лезть в код.
icon.png
Пиктограмма модуля, которая вводится в списке модулей при его добавлении на страницу.
Примечание: во всех файлах PHP, которые делаются для работы под управлением этой CMS, необходимо первой строкой включать следующий код:
<?php defined('C5_EXECUTE') or die("Access Denied.");?>
На этом первый урок закончен, если у сообщества будет интерес, то я продолжу.
Ссылки для интересующихся
Сайт CMS: concrete5.org
Русское сообщество: forum.concrete5russia.ru
Русские сборки: первая и вторая
Этот модуль на GitHub: horizintal_line
ссылка на оригинал статьи http://habrahabr.ru/post/198734/
Добавить комментарий