home chevron_right
Системные блоки (/simai) и блоки сайта (/simai.data), структура, view-пресеты

Системные блоки лежат в ядре /simai (модуль simai.framework) и служат базой; они не правятся в проектахlink

В проекте стоит закрепить формулировку так, чтобы она совпадала с реальной эксплуатацией:

  • Базовый набор блоков и 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)link

Минимальная “файловая модель” для понимания:

  • {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-пресеты и соответствующие блоки описаны в реестре поставки; путь/структура директорий — в дереве проектаlink

Практически это выглядит так:

  1. На уровне сайта/раздела/страницы выбирается код активного view области (например, для шапки — grid_view_header = default или grid_view_header = 005).
  2. По этому коду 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>/
  • и т.д.
  1. Внутри template.php лежит конфигурация, где указано:
  • какие строки/колонки активны,
  • какие area-шаблоны в каких колонках используются,
  • и какие параметры передать каждому area-шаблону/блоку.

Именно поэтому view в SF4 — это “набор параметров сущности”, а не только файл-вёрстка.

Правило: любые изменения/новые блоки — только в simai.data; системные блоки в /simai остаются неизменными, при необходимости копируются/переопределяются в слой сайтаlink

Если нужно изменить поведение/вёрстку блока:

  • создайте/измените блок в {site_dir}/simai.data/grid/block/...
  • в view укажите этот блок как ...AREA_*_TEMPLATE
  • параметры блока храните и редактируйте через view (редактор сохранит их в view/.../template.php)

Ключевой момент: грид берёт параметры из view, а блок уже читает их из $arBlockProperty (то есть блок “не знает”, откуда параметры пришли — они просто переданы внутрь при сборке).

Доп. референсы: при наличии аннотированного реестра — список view/block и их параметры; общий контент — в поставке проектаlink

В документации это лучше формулировать нейтрально: “платформа поставляет набор готовых view и блоков; проект использует и расширяет их через {site_dir}/simai.data}”, без привязки к внутренним файлам-реестрам как к “источнику в тексте”.