wiki:Разработка/Уроки/Создание модуля

Урок "Создание модуля"

Данный урок рассматривает базовые аспекты по разработке модуля для платформы 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 архив и распаковать его в папку движка.