Назначение /simai как ядра
/simai — это платформенная часть SIMAI Framework 4 (SF4), которая ставится вместе с модулем simai.framework и обеспечивает “опорную инфраструктуру” фреймворка на сайте. Важно воспринимать её как ядро, которое не правят в проектах: любые доработки и расширения выполняются через проектный слой (в первую очередь {site_dir}/simai.data и настройки сайта/разделов/страниц). Такой подход позволяет обновлять SF4 без постоянного ручного слияния изменений.
На практике /simai объединяет несколько типов системных артефактов: базовые конфиги (включая конфигурации ассетов), служебные файлы для работы админ-инструментов, базовые реализации блоков/свойств и инфраструктуру мастеров. В структуре ядра обычно встречаются, например, каталоги admin, asset, config, block, property, wizard — это не “данные проекта”, а именно опорная часть платформы.
Мастера и действия мастера: /simai/wizard/action
Механизм мастера в SF4 построен на идее “сценария установки/миграции”, который описывается конфигом мастера как цепочка шагов. Каждый шаг ссылается на действие по коду (например, file.copy, urlrewrite.add, option.import.data, iblocktype.import.data и т.д.), а сами действия реализуются на стороне платформы — в ветке /simai/wizard/action.
С точки зрения разработчика решения это выглядит так:
- решение хранит сценарий (что делать и в каком порядке);
- платформа SF4 даёт реализацию действий (как именно копировать/распаковывать/импортировать/настраивать).
Типовой шаг в сценарии (упрощённый пример структуры данных) выглядит так:
[
"name" => "Копирование файлов",
"code" => "file.copy",
"data_input_code" => "site_config",
"parameter" => [
// параметры действия
],
]
Отдельно полезно держать в голове, что мастер поддерживает “поток данных” между шагами (data_output_code / data_input_code) и условия выполнения (condition). Это позволяет делать установку/миграции не “жёстко прошитыми”, а адаптивными под выбранный сайт и параметры мастера.
Системные ассеты и их роль в работе панели/редакторов
Системные ассеты SF4 — это общий фундамент для UI фреймворка: панели управления, режимов редактирования и интерфейса мастера. Их задача — обеспечить единый набор JS/CSS (и зависимостей), на который опираются инструменты SF4: выбор макетов областей, включение режимов редактирования, визуальные элементы мастера и т.п.
Характерный паттерн использования — загрузка пакетов через системный загрузчик ассетов SF4:
use SIMAI\Main\Page\Asset;
Asset::getInstance()->load("simai.framework");
Asset::getInstance()->load("simai.bx-panel");
Asset::getInstance()->load("jquery");
Asset::getInstance()->load("popper");
Практический смысл для жизненного цикла страницы и разработки такой:
- ядро даёт “стандартные пакеты” и их подключение (в т.ч. для панели и редакторов);
- проект добавляет/переопределяет своё через
{site_dir}/simai.data/templateи проектную конфигурацию ассетов (у вас — по правилу замещения, чтобы обновления ядра не ломали сайт); - режимы редактирования (включая режим редактирования гридов) зависят от этих системных ассетов, поэтому они должны подключаться стабильно и без дублей.