Редактор грида поддерживает drag&drop строк/колонок/блоков и inline-настройки
В SF4 визуальное редактирование грида — это режим, в котором страница становится «живым макетом»: строки, колонки и блоки можно переставлять (drag&drop), включать/выключать и настраивать прямо на странице. Важный момент: редактор работает не “поверх HTML”, а поверх конфигурации грида, поэтому любые изменения в итоге превращаются в обновлённые параметры для simai:sf.grid.
Inline-настройки обычно соответствуют тем же сущностям, которые присутствуют в конфигурации грида:
- строка (ROW): имя/активность, контейнер/обёртки, модификаторы, условия показа и т.п.
- колонка (COL): ширины по брейкпоинтам, адаптивность, модификаторы, количество областей.
- область (AREA): выбранный шаблон блока (
*_TEMPLATE), модификаторы области и параметры выбранного блока.
С точки зрения разработчика это удобно тем, что редактор создаёт и поддерживает «каноническую» структуру параметров: одинаковые паттерны ключей, одинаковый способ хранения, одинаковый формат сохранения.
Где живёт конфигурация редактирования и что именно сохраняется
Ключевое правило, которое стоит зафиксировать в документации (и которым вы уже пользуетесь в проекте):
- Редактор всегда сохраняет результат в файл представления:
{site_dir}/simai.data/grid/view/.../template.phpТо есть итогом редактирования становится полный PHP-вызовIncludeComponent("simai:sf.grid")со всеми параметрами (ROW/COL/AREA и параметрами блоков).
Параллельно с этим существует отдельная задача — выбор “какое представление использовать” для области сайта. Это уже не “сохранение конфигурации”, а “подключение нужной конфигурации”, и оно фиксируется в настройках (через свойства grid_view_*) на уровнях site/section/page (см. следующий раздел про наследование и grid_view_*).
Практическое следствие для команды:
- любые правки через визуальный редактор — это изменения артефактов проекта (файлов
template.phpу view), которые нужно хранить в репозитории и переносить между средами; - выбор активных представлений для областей (header/footer/sidebar/…) — это изменения настроек (properties), которые тоже должны быть воспроизводимы (экспорт/импорт, миграции, регламент деплоя).
Ниже — характерный фрагмент того, во что превращается сохранённое view (укороченно, чтобы было видно принцип):
$APPLICATION->IncludeComponent(
'simai:sf.grid',
'.default',
[
'BLOCK_SECTION' => 'sidebar',
'EXPERT_MODE' => 'Y',
'ROW_first_NAME' => 'Меню',
'ROW_first_ACTIVE' => 'Y',
'ROW_first_COL_0_AREA_0_TEMPLATE' => 'menu.sidebar',
// … далее весь набор ROW_*/COL_*/AREA_* и параметры блоков
],
false,
[
'HIDE_ICONS' => (Property::getValue(SF_SITE_DIR, 'grid_edit_mode') === 'Y' ? 'N' : 'Y'),
]
);
Здесь важно сразу увидеть две вещи:
-
BLOCK_SECTIONзадаёт “категорию блоков”, с которыми работает данное представление (например,header,footer,sidebar,main,home). Это влияет и на то, что показывает редактор при выборе блоков. -
Параметр
HIDE_ICONSобычно завязан наgrid_edit_mode: когда режим редактирования включён, иконки/панели управления на странице не скрываются.
Как включаются режимы редактирования и где они применяются
По вашей текущей логике в проекте включение сделано «в два шага»:
- Сначала включается общий режим редактирования в панели управления SF4 (после этого становятся доступны элементы управления, связанные с редактированием интерфейса).
- Затем отдельно включается режим редактирования грида — после чего на страницах появляется управление именно гридом (перетаскивание, добавление/удаление, настройки строк/колонок/блоков).
Область применения, которую полезно проговорить в документации как ожидание для новичка:
- правка конфигурации всегда приводит к изменению конкретного view-файла (того, который открыт/редактируется);
- выбор “какой view активен” может зависеть от уровня (сайт/раздел/страница), потому что это уже часть настроек и наследования.