Урок "Создание модуля"
Данный урок рассматривает базовые аспекты по разработке модуля для платформы BrickCMS.
Итак, начнем...
Задача
Необходимо создать модуль "Lesson1", который должен отобразить страницу с текстом "Hello World!" по адресу http://мойсайт/lesson1/
Решение
Шаг 1
Создаем папку lesson1 в папке modules движка BrickCMS. В этой папке и будут созданы все необходимые файлы для работы модуля.
Шаг 2
Создаем файл module.php в папке нашего модуля и вносим в него следующий код:
<?php $mod = new CMSModLesson1(); CMSRegistry::$instance->modules->Register($mod); class CMSModLesson1 extends CMSModule { public function __construct(){ $this->version = "1.0.0"; $this->name = "lesson1"; $this->takelink = "lesson1"; } } ?>
Разберем код по строкам:
class CMSModLesson1 extends CMSModule {
В этой строке объявляем класс CMSModLesson1 который наследуется от CMSModule.
public function __construct(){
В этой строке, в классе CMSModLesson1 объявляем конструктор
$this->version = "1.0.0";
$this->name = "lesson1";
$this->takelink = "lesson1";
В этих строках настраиваем наш модуль, а именно:
- $this->version = "1.0.0"; - указываем текущую версию модуля.
- $this->name = "lesson1"; - указываем имя модуля.
- $this->takelink = "lesson1"; - указываем раздел в адресе URL, который будет сообщать платформе, что если запрос страницы происходит по адресу URL в котором первый раздел будет равен lesson1 и есть модуль, в котором takelink соответствует ему, то необходимо передать управление именно этому модулю. В нашем случае, если будет запрошена страница http://мойсайт/lesson1/..., то этот запрос будет обрабатывать наш модуль. Если, например, в takelink указать mylesson, то соответственно, модуль начнет обрабатывать запросы, только если запрашиваемый URL будет иметь вид http://мойсайт/mylesson/...
$mod = new CMSModLesson1();
В этой строке создаем экземпляр класса нашего модуля.
CMSRegistry::$instance->modules->Register($mod);
В этой строке регистрируем модуль в ядре.
Шаг 3
По условию задачи необходимо отобразить страницу с текстом "Hello World!" по адресу http://мойсайт/lesson1/. В предыдущих шагах мы настроили модуль на перехват раздела lesson1 в адресе URL, теперь необходимо создать кирпич типа BrickContent в папке content нашего модуля.
В папке content модуля всегда помещаются кирпичи, которые являются стартовыми в сборе отображаемой страницы. Более подробно об этом типе кирпича можно прочитать на этой странице.
Здесь же стоит отметить то, что в этой папке имена кирпичей должны соответствовать имени запрашиваемой страницы. Например, если URL будет http://мойсайт/lesson1/test.html, то и кирпич должен будет иметь имя файла test.html. Если же запрашиваемый адрес не имеет конкретного имени файла, как в нашем случае http://мойсайт/lesson1/, то этот адрес будет по умолчанию искать файл index.html.
Создадим файл index.html в папке content нашего модуля и добавим в него следующий текст:
<!--[*] [tt=main][/tt] [*]--> <h1>Hello World!</h1>
Разберем код по строкам:
<!--[*] ... [*]-->
Так как каждый кирпич в платформе BrickCMS состоит из параметров и тела контента, то параметры всегда описываются в начале, заключившись в символы <!--[*] в начале и в [*]--> в конце.
[tt=main][/tt]
В этой строке указывается параметр шаблона, main - имя шаблона текущего стиля. Т.е. текущий кирпич типа BrickContent при сборке будет помещен в кирпич шаблон типа BrickTemplate.
<h1>Hello World!</h1>
Тело контента кирпича будет иметь этот текст.
Шаг 4
Итак, все необходимые файлы модуля по текущей задачи созданы. Если модуль был создан в соответствии с изложеным здесь решением, то открыв страницу http://проверочныйсайт/lesson1/ будет отображена страница сайта с текстом Hello World'''
Для установки модуля "Lesson1" необходимо скачать zip архив и распаковать его в папку движка.
