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

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

В SF4 визуальное редактирование грида — это рабочий режим, в котором вы собираете область страницы как конструктор: добавляете/удаляете строки, меняете количество колонок, переставляете блоки между колонками, настраиваете параметры строки/колонки/блока «на месте». По сути вы редактируете конфигурацию представления (view), а не «верстаете руками» шаблон.

Технически итогом редактирования становится набор параметров компонента simai:sf.grid: порядок строк (ROW_ORDER), параметры строк (ROW_*), параметры колонок внутри строки (ROW_*_COL_*), список областей (area) внутри колонки и их шаблоны (ROW_*_COL_*_AREA_*_TEMPLATE) и т.д. Поэтому drag&drop в редакторе напрямую превращается в изменение этих параметров: вы меняете структуру → меняются ключи и значения параметров.

Дополнительно редактор поддерживает «расширенный» набор полей. На уровне конфигурации это обычно проявляется флагом EXPERT_MODE: когда он включён, интерфейс показывает больше технических настроек (то, что обычному контент-редактору чаще всего не нужно).

Конфигурации редактирования и параметры интерфейсаlink

Редактор опирается на два слоя вещей:

  1. Модель грида и соглашения об именовании параметров. Структура «строки → колонки → области (area)» задаётся параметрами вида ROW_*, ROW_*_COL_*, ROW_*_COL_*_AREA_*. Это важно понимать, потому что любые визуальные изменения в итоге сохраняются именно как параметры, а не как «какой-то отдельный формат».

  2. Ограничители и «контекст» редактирования. В параметрах грида может встречаться, например, BLOCK_SECTION — это практический переключатель того, из какого набора/раздела блоков подбираются элементы для текущего представления (например, для шапки это логично «header», для подвала — «footer» и т.п.). Это позволяет редактору показывать более релевантные блоки для конкретной области сайта.

Также в конфигурации представлений встречаются условия отображения. Типовой паттерн — пара параметров на сущность (часто на строку):

  • *_USE_CONDITION — включено ли условие,
  • *_CONDITION_PROPERTY — по какому свойству проверять (например, show_title, include_top_area и т.п.). Смысл: часть разметки/областей становится управляемой через свойства сайта/раздела/страницы, а не правками шаблонов.

Где смотреть примеры UI и поведения и что реально сохраняется на дискlink

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

{site_dir}/simai.data/grid/view/.../template.php

Причём в актуальной схеме template.php — это не «абстрактный конфиг», а готовый PHP-файл, который вызывает компонент simai:sf.grid с массивом параметров (включая BLOCK_SECTION, EXPERT_MODE, ROW_*, ROW_*_COL_*_AREA_*_TEMPLATE и т.д.). Редактор именно перезаписывает/обновляет этот файл, фиксируя новую конфигурацию.

Отдельно от этого существует выбор активного view для области, и он хранится в свойствах:

  • на уровне сайта — в {site_dir}/simai.data/.site.property.php,
  • на уровне раздела/страницы — в .property.php внутри папки раздела (и там же — page-настройки).

То есть разделение такое:

  • редактор грида меняет содержимое view (переписывает соответствующий .../grid/view/.../template.php);
  • настройки сайта/раздела/страницы указывают, какой именно view-код использовать для конкретной области (через grid_view_* в property-файлах).

Практический вывод: если вам нужно изменить поведение только для одного раздела/страницы — обычно безопаснее создать отдельное представление (новый код/папку view) и подключить его через grid_view_* на нужном уровне, чем править общий default, который используется в нескольких местах.

И ещё один рабочий момент: включение «режима редактирования гридов» делается из панели SF4 (в интерфейсе это отдельная кнопка/переключатель). В самих view-шаблонах часто заложена логика вида «показывать/прятать сервисные иконки», завязанная на значение grid_edit_mode (оно читается через систему свойств). Это объясняет, почему без включения режима вы не видите элементов управления, даже если файлы view корректные.