Создание плагина - часть 1. Backend.

Как бы странно это не звучало, но чтобы создать плагин, нам потребуется установить плагин, с помощью которого можно будет создавать другие плагины; благо в October CMS есть такая возможность. И для этих целей нам послужит такая удобная штука как Builder, так что первым делом устанавливаем его. Сделать это можно в админке через пункт меню Settings->Updates & Plugins->Install plugins

В качестве примера будем создавать плагин, с помощью которого можно будет управлять списком книг. Далее привожу порядок действий: 

1. Щелкаем сначала по стрелочке слева от пункта Database, а затем по кнопке Create plugin

Здесь нужно заполнить поля Name, Author, Plugin namespace и Author namespace. Из названий двух последних полей будет сформирован namespace, и обычно их названия аналогичны двум первым полям. Я в качестве названия указал Library, а в качестве автора Cmsdev. Чуть ниже, при необходимости, можно выбрать иконку плагина. Нажимаем Ок и идём дальше.

2. Создаём таблицы в базе данных. Делается это через пункт Database->Add. В качестве названия таблицы, я указал: 

cmsdev_library_books

далее добавляем необходимые колонки, кликая по Add column. Названия полей и настройки у меня заданы так: 

  • id с типом Integer и атрибутами Auto Increment и Primary Key
  • title с типом string
  • slug с типом string (в дальнейшем будет участвовать в формировании url)
  • description с типом text

При нажатии по кнопке Save, произойдёт создание миграции. А через Save & Apply её применение, вследствие чего будут созданы сами таблицы.

3. Создаём модель через пункт Models -> Add.

вводим класс модели в поле Class name. Я назвал её так: Book

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

4. После сохранения модели, здесь же сразу станут доступны пункты: 

Forms - через который можно создать форму, которая будет служить для создания/редактирования новой книги. 

Lists - здесь указываем список полей, которые будут выводиться в общем списке всех книг.

тут всё просто, поэтому вряд ли имеет смысл останавливаться на этом подробно. Отмечу только что названия полей должны соответствовать именам столбцов в таблице. 

5. Создаём пункт меню, по которому будет доступен CRUD плагина. Для этого переходим в раздел Backend Menu и там щёлкаем по кнопке Add main menu item. Здесь пока что заполняем только поле Label. Я назвал его просто: Книги.

Нажимаем Save, но вкладку эту пока что не закрываем, она ещё нам пригодится. Сейчас же необходимо создать контролер. 

6. Сделать это можно через пункт Controllers->Add. Вводим название контроллера, в моём случае это "Books". Связываем его с моделью и только что созданным пунктом меню. Не забываем отметить галочки List controller behavior и Form controller behavior

7. Возвращаемся к вкладке, в которой мы создавали пункт меню и здесь уже в поле url начинаем вводить название нашего контролера (будет доступна подсказка).

На всякий случай перезагружаем страницу и кликаем по только что созданному верхнему пункту меню для нашего плагина - в нём можно будет создавать/редактировать/удалять книги.

В следующей части рассмотрим, как выводить книги на frontend сайта. 

Комментарии ()

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