Создание встроенного модуля CMS

Материал из Школьный портал: справочника
Перейти к: навигация, поиск

Сейчас мы с вами напишем встроенный модуль для CMS, который максимально просто и делает одну вещь, говорит «Hello World!».

Предстоит редактировать файл cms.pl, в установленном портале он находится здесь:

/var/www/cgi-bin/sp/cms

Главный принцип, о котором нужно помнить всегда: модули не имеют право печатать на экран, они должны только возвращать текст.

Это требование выставлено для того, чтобы пользователь мог выбрать, в каком блоке расположены модули и в каком порядке они срабатывают.

Название

Первое, что нужно сделать, это придумать имя для будущего модуля.

Имени у модуля два:

  1. . Внутреннее
  2. . Для людей

Внутренне имя должно состоять из только из латинских символов и чисел.

Имя для людей можно (и по возможности рекомендуется) писать на русском языке.

Длина имён ограничена 100 символами, постарайтесь назвать модуль с использованием как можно меньшего количество символов, но так, чтобы было понятно.

Я выбрал внутреннее имя "hello" и человеческое название "Привет, мир!"

Регистрация в базе

Выполняем (один раз!) SQL-запрос на базе CMS.gdb:

INSERT INTO MODULES (MODULENAME, VISIBLE_NAME, M_DEF_LINK, ACCESS, M_PLACE, SHOW_ON) VALUES ('hello', 'Привет, мир!', 'mod=hello', ',6,,2,,4,', 'center', ',AllPage,');

Красным отмечено то, что нужно заменить на выбранные вами названия модуля.

После этого уже сейчас можно видеть, что модуль появился в списке модулей (пункт меню Сайт → Компоненты). Он расположен в блоке center, по умолчанию опубликован и доступен для добавления в меню.

Module hello in list.png

Код модуля

Открывайте cms.pl в своём любимом редакторе и дописывайте процедуру:

sub hello()
{
	return "Hello, World!";
}

Добавление в список встроенных модулей

Открывайте common.pl (он живёт на уровень выше) найдите:

our @modules = ...

и допишите внутреннее латинское имя к этому массиву.

Использование

Поздравляем, ваш первый модуль готов!

Давайте добавим его в главное меню сайта. Для жтого в админке идём по адресу: Сайт → Компоненты и жмём кнопку Добавить напротив вашего нового компонента. После этого вы попадёте в редактор меню, который покажет вам, что получилось. А получилось у нас следующее: ваш модуль автоматически представлен пунктом меню с человеческм названием, находится ниже всех остальных пунктов и по умолчанию включен.

Переходите на сайт, щёлкните в меню по только созданному только что пункту и смотрите, ваш модуль работает :)

Module test on site.png

Сделаем что-то поинтереснее

Наш простейший пример на вид от статьи почти не отличается, давайте добавим динамики, например, сделаем так, чтобы модуль показывал календарь.

Снова откройте cms.pl и измените процедуру вашего модуля:

sub hello()
{
	return '<pre>' . `cal -y` . '</pre>';
}

Смотрите, что получилось:

Give me some dynamic.png

Словом, вся мощь языка Perl к вашим услугам :)