home chevron_right
Визуальное редактирование: drag\&drop, inline настройки

Редактор грида поддерживает drag&drop строк/колонок/блоков и inline-настройки

В SF4 визуальное редактирование грида — это режим, в котором страница становится «живым макетом»: строки, колонки и блоки можно переставлять (drag&drop), включать/выключать и настраивать прямо на странице. Важный момент: редактор работает не “поверх HTML”, а поверх конфигурации грида, поэтому любые изменения в итоге превращаются в обновлённые параметры для simai:sf.grid.

Inline-настройки обычно соответствуют тем же сущностям, которые присутствуют в конфигурации грида:

  • строка (ROW): имя/активность, контейнер/обёртки, модификаторы, условия показа и т.п.
  • колонка (COL): ширины по брейкпоинтам, адаптивность, модификаторы, количество областей.
  • область (AREA): выбранный шаблон блока (*_TEMPLATE), модификаторы области и параметры выбранного блока.

С точки зрения разработчика это удобно тем, что редактор создаёт и поддерживает «каноническую» структуру параметров: одинаковые паттерны ключей, одинаковый способ хранения, одинаковый формат сохранения.

Где живёт конфигурация редактирования и что именно сохраняетсяlink

Ключевое правило, которое стоит зафиксировать в документации (и которым вы уже пользуетесь в проекте):

  • Редактор всегда сохраняет результат в файл представления: {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'),
    ]
);

Здесь важно сразу увидеть две вещи:

  1. BLOCK_SECTION задаёт “категорию блоков”, с которыми работает данное представление (например, header, footer, sidebar, main, home). Это влияет и на то, что показывает редактор при выборе блоков.

  2. Параметр HIDE_ICONS обычно завязан на grid_edit_mode: когда режим редактирования включён, иконки/панели управления на странице не скрываются.

Как включаются режимы редактирования и где они применяютсяlink

По вашей текущей логике в проекте включение сделано «в два шага»:

  1. Сначала включается общий режим редактирования в панели управления SF4 (после этого становятся доступны элементы управления, связанные с редактированием интерфейса).
  2. Затем отдельно включается режим редактирования грида — после чего на страницах появляется управление именно гридом (перетаскивание, добавление/удаление, настройки строк/колонок/блоков).

Область применения, которую полезно проговорить в документации как ожидание для новичка:

  • правка конфигурации всегда приводит к изменению конкретного view-файла (того, который открыт/редактируется);
  • выбор “какой view активен” может зависеть от уровня (сайт/раздел/страница), потому что это уже часть настроек и наследования.