Системные блоки лежат в ядре /simai (модуль simai.framework) и служат базой; они не правятся в проектах
В проекте стоит закрепить формулировку так, чтобы она совпадала с реальной эксплуатацией:
- Базовый набор блоков и view поставляется платформой, но рабочие (используемые на сайте) реализации живут в
{site_dir}/simai.data/grid/.... - Поэтому “не править системное” на практике означает: не менять платформенную поставку/инфраструктуру, а все изменения выполнять в проектном слое
{site_dir}/simai.data.
Такой подход даёт предсказуемость: проект остаётся самодостаточным (view и блоки лежат рядом с проектом), а изменения платформы не вынуждают редактировать ядро.
Блоки сайта располагаются в {site_dir}/simai.data/grid/block и представления в {site_dir}/simai.data/grid/view. Здесь хранятся конфигурации, которые использует грид (simai:sf.grid)
Минимальная “файловая модель” для понимания:
{site_dir}/simai.data/grid/view/.../<code>/template.php— сохранённая конфигурация грида для конкретного представления области (header/footer/sidebar/main/top и т.д.). По вашему правилу визуальный редактор всегда сохраняет изменения именно сюда.{site_dir}/simai.data/grid/block/<section>/<code>/template.php— шаблон блока (то, что реально рендерит HTML и вызывает компоненты)..description.phpиlang/...— чтобы view/блок имели название/описание в интерфейсе и были локализованы..parameters.php— чтобы блок мог объявить редактируемые параметры (и чтобы грид корректно “подхватил” их из view и прокинул внутрь шаблона блока).
View-пресеты и соответствующие блоки описаны в реестре поставки; путь/структура директорий — в дереве проекта
Практически это выглядит так:
- На уровне сайта/раздела/страницы выбирается код активного view области (например, для шапки —
grid_view_header = defaultилиgrid_view_header = 005). - По этому коду SF4 находит папку вида:
{site_dir}/simai.data/grid/view/header/<code>/{site_dir}/simai.data/grid/view/main/top/<code>/{site_dir}/simai.data/grid/view/sidebar/left/<code>/- и т.д.
- Внутри
template.phpлежит конфигурация, где указано:
- какие строки/колонки активны,
- какие area-шаблоны в каких колонках используются,
- и какие параметры передать каждому area-шаблону/блоку.
Именно поэтому view в SF4 — это “набор параметров сущности”, а не только файл-вёрстка.
Правило: любые изменения/новые блоки — только в simai.data; системные блоки в /simai остаются неизменными, при необходимости копируются/переопределяются в слой сайта
Если нужно изменить поведение/вёрстку блока:
- создайте/измените блок в
{site_dir}/simai.data/grid/block/... - в view укажите этот блок как
...AREA_*_TEMPLATE - параметры блока храните и редактируйте через view (редактор сохранит их в
view/.../template.php)
Ключевой момент: грид берёт параметры из view, а блок уже читает их из $arBlockProperty (то есть блок “не знает”, откуда параметры пришли — они просто переданы внутрь при сборке).
Доп. референсы: при наличии аннотированного реестра — список view/block и их параметры; общий контент — в поставке проекта
В документации это лучше формулировать нейтрально: “платформа поставляет набор готовых view и блоков; проект использует и расширяет их через {site_dir}/simai.data}”, без привязки к внутренним файлам-реестрам как к “источнику в тексте”.