home chevron_right
Структура фреймворка

Общая карта: модуль simai.framework, системный шаблон, слой данных сайтаlink

SIMAI Framework 4 (SF4) в проекте удобно воспринимать как три уровня, которые вместе дают “виртуальную CMS” поверх 1С-Битрикс:

  1. Платформа (модуль simai.framework) — всё, что поставляется и обновляется как часть SF4: ядро, инфраструктура, компоненты, мастер и служебные инструменты.
  2. Системный шаблон (/bitrix/templates/simai.framework) — точка подключения фронтенда SF4 на публичной части: базовый layout, подключение пакетов ассетов, общие include-участки.
  3. Слой проекта ({site_dir}/simai.data) — всё, что относится к конкретному сайту/решению: представления областей, блоки, конфиги настроек, проектные ассеты, значения настроек. Это главный слой расширения и поддержки.

Ключевой принцип эксплуатации SF4: платформа и системный шаблон обновляются, а проектные изменения живут в simai.data. Это сохраняет стабильность при обновлениях и делает перенос между средами предсказуемым.

Ядро /simai: системные JS/CSS, утилиты, подключаемые файлы; не изменяется в проектахlink

/simai — это ядро SF4 как платформы. Оно отвечает за системные механики, без которых не работают публичные и административные сценарии: загрузка ресурсов, служебная инфраструктура, базовые конфигурации, действия мастера, элементы панели и режимы редактирования.

Практическое правило для разработчика решения: /simai не редактируется. Если в проекте возникла потребность “чуть поправить ядро” — это сигнал, что либо нужна проектная точка расширения (через simai.data), либо изменения должны оформляться как развитие самой платформы SF4.

Компоненты /bitrix/components/simai: iblock/hlblock/feedback/menu/wizard/share/rss/pdf/grid и другиеlink

Компоненты в /bitrix/components/simai — это прикладной слой SF4, который подключается стандартным способом Bitrix ($APPLICATION->IncludeComponent(...)), но решает задачи в рамках архитектуры SF4:

  • вывод данных (инфоблоки, HL-сущности, списки, карточки),
  • интерактивные элементы (формы обратной связи, элементы меню, блоки шаринга),
  • инфраструктурные компоненты SF4 (грид, мастер и т.п.).

Для разработчика решения компоненты важны в двух режимах:

  • как “движок данных” внутри блока: блок задаёт разметку и контекст, компонент выводит контент;
  • как готовый модуль поведения: вы подключаете компонент, настраиваете параметры и встраиваете в композицию через view/grid.

Мастера /simai/wizard/action: действия вида agreement, file.*, iblock.*, site.*, option.*, translate.* и другиеlink

/simai/wizard/action — это библиотека “действий” (шагов), которые используются мастером установки/обновления решения. Мастер решения описывает цепочку шагов в конфиге, а сами шаги исполняются через эти действия.

Важно разделять:

  • мастер решения — сценарий (что делаем и в каком порядке),
  • действия мастера — реализация шагов (как именно копировать файлы, импортировать архивы, применять настройки, выполнять условия).

Для практики это даёт предсказуемую модель установки: решение можно разворачивать пошагово, в AJAX-режиме, а длинные операции (распаковка/импорт) выполняются устойчиво.

Шаблон /bitrix/templates/simai.framework: базовые include/headers/assets; адаптация через {site_dir}/simai.data/templatelink

Системный шаблон SF4 — это “скелет” публичной части: общий layout, подключение ресурсов, базовые include-участки, точки входа для отображения областей (header/footer/sidebar/main).

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

  • {site_dir}/simai.data/template

Там обычно живут проектные стили/скрипты, переопределения элементов шаблона, а также связанные с UI части (meta, panel, property-шаблоны), которые нужны именно конкретному сайту/решению.

Слой данных {site_dir}/simai.data: конфиги, шаблонные файлы, grid/view/block, include/modal/lang/image, overrides свойствlink

{site_dir}/simai.data — это “контейнер проекта” SF4: то, что вы храните как проектные артефакты, переносите между средами и обновляете вместе с решением.

Что важно понимать по структуре и ролям каталогов:

  • config/ — настройки и схемы настроек: здесь задаются доступные параметры (что можно настраивать на уровне сайта/раздела/страницы), а также конфигурации ассетов и шрифтов.
  • grid/view/ — представления областей: это сохранённые конфигурации, которые определяют композицию областей (header/footer/sidebar/main/home и т.д.) и то, какие area-шаблоны в каких местах выводятся.
  • grid/block/ — блоки: реализация area-шаблонов (шаблоны, параметры, локализация). Блоки выбираются по коду и принимают параметры из view.
  • template/ — проектное расширение шаблона и проектные CSS/JS: сюда выносится кастомизация, чтобы обновления платформы не затрагивали проект.
  • include/, modal/, lang/, image/ — проектные вспомогательные артефакты: включаемые фрагменты, модальные окна, локализация и изображения (в том числе превью для выбора макетов).
  • property/ — проектные переопределения/расширения, связанные со свойствами (когда это требуется вашим решением).

Важная связка, которая “сшивает” весь SF4 в работающую систему: настройки (.site.property.php + .property.php) выбирают активные grid_view_* для областей → view загружает композицию → view выбирает блоки по ...AREA_*_TEMPLATE → блоки рендерят разметку и, при необходимости, подключают компоненты → ассеты подключаются по пакетам (с учётом проектного правила замещения конфигурации).

Если хочешь, следующим шагом можно сделать короткий “практический навигатор по диагностике структуры”: где быстро проверить, почему не применился header (не тот grid_view_header, нет папки view, нет блока по коду, перекрытие уровней page/section/site, кэш).