Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Разработка для Concrete5: Примитивный модуль

Anna | 31.05.2014 | нет комментариев

В этом уроке я предлагаю разглядеть, как делается наименьший модуль для Concrete5 CMS (в терминологии системы модули именуются блоками) на примере модуля «Разграничитель».

Допущу себе малое отхождение и упомяну, что при разработке растяжений для 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; 
}

Обращу внимание, что наименование директории с модулем и и имя контроллера обязаны соответствовать друг другу потому как таковы соглашения об именовании. Соответствие определяется так:

  1. берем наименование директории
  2. делаем заглавными первую букву и все первые буквы идущие позже символа подчеркивания, если таковой есть, вот так Horizintal_Line
  3. убираем символы подчеркивания, получаем HorizintalLine
  4. в конце добавляем наименование класса родительского контроллера 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.");?>

На этом 1-й урок завершен, если у сообщества будет интерес, то я продолжу.

Ссылки для интересующихся

Сайт CMS: concrete5.org
Русское сообщество: forum.concrete5russia.ru
Русские сборки: первая и вторая
Данный модуль на GitHub: horizintal_line

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB