====== Контроллеры ====== В этом разделе находится документация по созданию контроллеров компонентов. ===== Содержание раздела ===== ==== Общая информация ==== В названиях контроллеров могут быть буквы (в нижнем регистре), цифры и знак подчеркивания (_), при чём начинаться название должно только с буквы. Число символов в названии должно быть не меньше трёх. Называть контроллер нужно осознано, чтобы отражалась его суть. Название должно быть уникальным. Учтите, что если вы делаете контроллер только для реализации обработки событий, то разумнее называть контроллер так, чтобы в будущем не возникло ситуации, что ваш контроллер войдет в конфликт либо с уже существующим (например, название типа контента в компоненте content, при том, что вы не планировали дополнять тип контента), либо другой разработчик захочет создать компонент с таким же названием, но уже с реализацией полноценного фронтэнда. Все файлы контроллера находятся по пути **/system/controllers/{название_контроллера}**. Контроллер может иметь: * только [[dev:models|модель]] * только публичную часть * только админку * обрабатывать [[dev:controllers:hooks|события]] (хуки), имея [[dev:controllers:actions#класс-контроллера|базово]] только публичную часть * все вышеперечисленное ==== Публичная часть (frontend) ==== - [[dev:controllers:paths|Файлы и папки]] - [[dev:controllers:actions|Действия контроллеров]] - [[dev:controllers:custom|Переопределение контроллера]] - [[dev:controllers:request|Обработка запросов]] - [[dev:controllers:model|Работа с моделью]] - [[dev:controllers:core|Работа с системными классами и объектами]] - [[dev:controllers:language|Языковой файл]] - [[dev:controllers:templates|Шаблоны]] - [[dev:controllers:forms|Формы]] - [[dev:controllers:hooks|Обработка событий]] - [[dev:controllers:user|Работа с пользователями]] ==== Админка компонента (backend) ==== Каждый компонент может иметь собственный раздел настроек в Панели управления InstantCMS. Для создания такого раздела компонент должен иметь backend (админку). Принцип устройства админки компонента очень похож на устройство фронтенда (описанное в статьях выше), но есть некоторые отличия. - [[dev:controllers:backend:db|Регистрация компонента в базе данных]] - [[dev:controllers:backend:paths|Файлы и папки]] - [[dev:controllers:backend:controller|Контроллер админки]] - [[dev:controllers:backend:model|Использование модели]] - [[dev:controllers:backend:menu|Меню админки]] - [[dev:controllers:backend:options|Стандартная форма опций в админке компонента]] - [[dev:controllers:backend:grids|Использование таблиц в админке]] - [[dev:controllers:backend:perms|Управление правами доступа]] - [[dev:controllers:backend:flag|Универсальное действие для переключения поля]] ===== Автоматическая генерация ===== Вы можете использовать утилиту [[https://instantcms.ru/addons/comgen.html|Генератор компонентов]] для автоматической генерации скелета компонента и его типовых элементов (экшенов CRUD, форм, шаблонов). ---- [[dev:start|К оглавлению]]