Плюшка CMS#29.08.2018

/* Создан для быстрой разработки приложений */
Скачать Демо

24.1. Этапы разработки модуля

23.09.2015

Последовательность действий следующая:

1. В административном интерфейсе сайта нажать кнопку «инструменты разработчика» (соответствующий модуль должен быть установлен), далее сделать снимок сайта на вкладке «снимок движка». Система «запомнит» состояние файловой системы, а также базы данных — это простой способ в последствии отследить все вносимые изменения, чтобы создать переносимый модуль. Если модуль разрабатывается исключительно для одного сайта, то снимок состояния движка, конечно, не нужен.

2. Создаются файлы контроллеров, моделей, представлений и любые другие необходимые ресурсы.

3. Для того, чтобы добавить в меню ссылку на страницу создаваемого модуля, можно выбрать тип «произвольная ссылка» и вписать требуемый URL-адрес без ведущего слеша (система подмены ссылок будет работать). Если же создаётся переносимый модуль, то необходимо реализовать типы пунктов меню. Для этого нужно добавить записи в базу данных в таблицу menuType. Назначение полей следующее:

После добавления записей в таблицу menuType, в диалоговом окне выбора типа пункта меню появятся только что созданные. Теперь необходимо создать контроллер админки (если его ещё нет) и добавить действие. Оно должно показывать форму, запрашивающую дополнительные параметры, необходимые для формирования ссылки. Соответствующее submit-действие по полученным от формы данным должно вернуть сформированную ссылку.

4. Если необходимо создавать «полноценные» виджеты (можно вставить в шаблон тег {{widget}} — это будет работать без дополнительных манипуляций), то в базу данных нужно добавить записи в таблицу widgetType. Назначение полей следующее:

После добавления записей в таблицу widgetType, в диалоговом окне создания виджета появятся вновь созданные. Теперь необходимо создать контроллер админки (если его ещё нет) и добавить действие. Оно должно отображать форму, запрашивающую параметры виджета. Соответствующее submit-действие должно возвращать ассоциативный массив параметров виджета.

5. Если этого не требуется, то можно не заниматься настройкой прав доступа к управлению модулем. Для этого во всех контроллерах административной части сайта нужно создать метод right, который всегда будет возвращать false. Таким образом доступ к модулю будут иметь только суперпользователи. Если же настройка прав действительно требуется, то необходимо в базу данных добавить записи в таблицу userRight. Назначеие полей следующее:

Поле picture предназначено для того, чтобы разместить кнопку админки общего назначения: если это поле не пустое, то будет добавлена соответствующая ссылка. Возможно, такой подход покажется странным, но на практике это оказалось весьма удобно. При этом содержимое поля module расценивается иначе: это имя контроллера и имя действия (разделённые точкой), которые указывают на соответствующую страницу админки. При этом, если поле module содержит символ «*», то именем действия будет «index».