Файлы и папки
Каждый компонент имеет собственную папку внутри /system/controllers.
Например, файлы компонента groups (Группы пользователей) находятся в папке /system/controllers/groups:
В папке компонента находятся несколько вложенных папок и файлов:
- actions - файлы с действиями (экшенами) frontend-контроллера
- backend - файлы относящиеся к административной части компонента
- forms - файлы с описаниями форм ввода, использующимися в frontend-контроллере
- hooks - файлы хуков (обработчиков событий)
- backend.php - главный файл backend-контроллера компонента
- frontend.php - главный файл frontend-контроллера компонента
- custom.php - файл, переопределяющий и/или дополняющий frontend-контроллер компонента
- manifest.php - файл (манифест) с описанием компонента (в версиях InstantCMS выше 2.14.1 не требуется)
- model.php - модель компонента
Все перечисленные файлы и папки не являются обязательными. В компоненте всегда присутствуют только те из них, которые необходимы для реализации нужной логики. Например, может существовать только модель или только frontend-контроллер.
Шаблоны компонента
Шаблоны, относящиеся к компоненту, хранятся в папке /templates/{имя темы}/controllers/{имя компонента}.
Файлы frontend-шаблонов лежат прямо в корне этой папки. Файлы backend-шаблонов лежат во вложенной папке backend.
Например, frontend-шаблоны компонента groups хранятся в /templates/default/controllers/groups, а backend-шаблоны в /templates/default/controllers/groups/backend.
В папку /templates/{имя темы}/controllers/{имя компонента} можно поместить файл стилей styles.css. При наличии этого файла, система автоматически подключит его при вызове компонента.