Общая карта: модуль simai.framework, системный шаблон, слой данных сайта
SIMAI Framework 4 (SF4) в проекте удобно воспринимать как три уровня, которые вместе дают “виртуальную CMS” поверх 1С-Битрикс:
- Платформа (модуль
simai.framework) — всё, что поставляется и обновляется как часть SF4: ядро, инфраструктура, компоненты, мастер и служебные инструменты. - Системный шаблон (
/bitrix/templates/simai.framework) — точка подключения фронтенда SF4 на публичной части: базовый layout, подключение пакетов ассетов, общие include-участки. - Слой проекта (
{site_dir}/simai.data) — всё, что относится к конкретному сайту/решению: представления областей, блоки, конфиги настроек, проектные ассеты, значения настроек. Это главный слой расширения и поддержки.
Ключевой принцип эксплуатации SF4: платформа и системный шаблон обновляются, а проектные изменения живут в simai.data. Это сохраняет стабильность при обновлениях и делает перенос между средами предсказуемым.
Ядро /simai: системные JS/CSS, утилиты, подключаемые файлы; не изменяется в проектах
/simai — это ядро SF4 как платформы. Оно отвечает за системные механики, без которых не работают публичные и административные сценарии: загрузка ресурсов, служебная инфраструктура, базовые конфигурации, действия мастера, элементы панели и режимы редактирования.
Практическое правило для разработчика решения: /simai не редактируется. Если в проекте возникла потребность “чуть поправить ядро” — это сигнал, что либо нужна проектная точка расширения (через simai.data), либо изменения должны оформляться как развитие самой платформы SF4.
Компоненты /bitrix/components/simai: iblock/hlblock/feedback/menu/wizard/share/rss/pdf/grid и другие
Компоненты в /bitrix/components/simai — это прикладной слой SF4, который подключается стандартным способом Bitrix ($APPLICATION->IncludeComponent(...)), но решает задачи в рамках архитектуры SF4:
- вывод данных (инфоблоки, HL-сущности, списки, карточки),
- интерактивные элементы (формы обратной связи, элементы меню, блоки шаринга),
- инфраструктурные компоненты SF4 (грид, мастер и т.п.).
Для разработчика решения компоненты важны в двух режимах:
- как “движок данных” внутри блока: блок задаёт разметку и контекст, компонент выводит контент;
- как готовый модуль поведения: вы подключаете компонент, настраиваете параметры и встраиваете в композицию через
view/grid.
Мастера /simai/wizard/action: действия вида agreement, file.*, iblock.*, site.*, option.*, translate.* и другие
/simai/wizard/action — это библиотека “действий” (шагов), которые используются мастером установки/обновления решения. Мастер решения описывает цепочку шагов в конфиге, а сами шаги исполняются через эти действия.
Важно разделять:
- мастер решения — сценарий (что делаем и в каком порядке),
- действия мастера — реализация шагов (как именно копировать файлы, импортировать архивы, применять настройки, выполнять условия).
Для практики это даёт предсказуемую модель установки: решение можно разворачивать пошагово, в AJAX-режиме, а длинные операции (распаковка/импорт) выполняются устойчиво.
Шаблон /bitrix/templates/simai.framework: базовые include/headers/assets; адаптация через {site_dir}/simai.data/template
Системный шаблон 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 свойств
{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, кэш).