Содержание
Контроллер админки
Если компонент имеет настройки в Панели управления InstantCMS, ему необходим контроллер админки.
Контроллер располагается в файле /system/controllers/{название компонента}/backend.php.
Внутри файла определяется класс backend{НазваниеКомпонента}, наследуемый от системного класса cmsBackend. Пример для компонента example:
class backendExample extends cmsBackend { }
Обратите внимание, если в контроллере есть знак подчеркивания (_), то название класса должно выглядеть так, пример для компонента my_example:
class backendMy_example extends cmsBackend { }
Действия контроллера
Внутри класса контроллера могут быть определены действия (actions). Обращение к действиям происходит через URL: /admin/controllers/edit/компонент/действие. Например, определим действие hello в админке компонента example:
class backendExample extends cmsBackend { public function actionHello(){ echo 'Hello world'; } }
Обратиться к этому действию можно будет по адресу: http://site/admin/controllers/edit/example/hello
Доступ к данному URL будут иметь только администраторы.
Действия могут иметь входящие параметры, аналогично действиям фронтенда.
Индексное действие
В случаях, когда в URL содержится только название компонента, без указания действия, будет вызван метод actionIndex().
Действия во внешних файлах
Так же, как и фронтенд, админка может иметь действия, определенные во внешних файлах. Эти файлы должны находиться в папке /system/controllers/{название компонента}/backend/actions. В остальном их описание и работа идентична тому, как это происходит в фронтенде.
Предопределенные действия
Для ускорения разработки класс cmsBackend уже хранит готовую логику для трех наиболее распространенных действий – формы с опциями и настройки прав доступа и универсальное действие для переключения состояния поля. Использование этих действий описано в соответствующих разделах.