Основные конфиги в {site_dir}/simai.data/config: site_config, structure_config, файлы property для разделов/страниц
В SIMAI Framework 4 рабочие (проектные) конфиги сайта живут в папке данных {site_dir}/simai.data/. Для настроек ключевой является ветка {site_dir}/simai.data/config/: здесь лежат файлы-описания (схемы) настроек, которые затем используются в интерфейсах настройки (админ-страницы/редакторы), чтобы построить формы и понять типы полей, шаблоны отображения и параметры.
По факту это два разных слоя, которые часто путают:
- Конфиги-схемы (что редактируем и как показываем):
{site_dir}/simai.data/config/.site.config.php,{site_dir}/simai.data/config/.structure.config.php,{site_dir}/simai.data/config/.demo.config.php. - Конфиги-значения (что реально выбрано/установлено):
{site_dir}/simai.data/.site.property.phpдля сайта, и.property.phpв каталогах разделов (и страниц — через запись “page” внутри этого файла).
Важно: simai.data по модели SF4 может находиться как в корне сайта, так и внутри папки конкретного сайта ({site_dir}), поэтому в документации удобно фиксировать именно шаблон {site_dir}/simai.data/..., не привязываясь к /ru/, /en/ и т.п.
Пример того, как выглядят схемы настроек (логика “категория → свойства → описание поля”):
<?php
return [
'seo' => [
'name' => 'SEO',
'property' => [
'title' => [
'name' => 'Заголовок',
'type' => 'string',
],
'layout_type' => [
'name' => 'Тип макета',
'type' => 'list',
'template' => 'sf4.image.card',
'values' => [
'wide-fluid' => '/.../layout_wide_fluid.png',
'wide-fixed' => '/.../layout_wide_fixed.png',
],
],
],
],
];
Системные конфиги модуля: .framework.config.php (общие настройки фреймворка) и .demo.config.php (демо-настройки)
У SF4 есть системный слой конфигурации, который относится к самому фреймворку как платформе. Типовой системный файл — /simai/config/.framework.config.php: он хранит набор ключей с метаданными (значение + признак “только чтение”), то есть описывает глобальные параметры SF4, которые не должны “разъезжаться” между проектами.
При этом .demo.config.php в реальной работе используется как проектный файл в {site_dir}/simai.data/config/.demo.config.php: он задаёт схему полей демо-режима/демо-настроек (то есть какие параметры доступны и как их редактировать). Если где-то встречается формулировка “.demo.config.php — системный конфиг”, её лучше читать так: файл поставляется/используется стандартными интерфейсами SF4, но редактировать его принято в проектном слое {site_dir}/simai.data/....
Пример структуры системного .framework.config.php (ключ → value/readonly):
<?php
return [
'smtp_status' => [
'value' => 'N',
'readonly' => false,
],
'site_update' => [
'value' => false,
'readonly' => true,
],
];
Связь с публичным редактором: property-файлы разделов/страниц используются редактором
И админ-скрипты настроек, и публичные редакторы в SF4 опираются на единый принцип: схема полей берётся из .../config/*.config.php, а значения — из *.property.php. Это важно, потому что “публичный редактор” не придумывает отдельное хранилище: он сохраняет результат туда же, куда сохраняет и админка (просто через другой интерфейс).
Ключевая механика по уровням такая:
- значения сайта берутся из
{site_dir}/simai.data/.site.property.php; - значения разделов берутся из
.property.phpпо цепочке каталогов (наследование “сверху вниз”); - значения страницы берутся из той же
.property.php, но в секцииpage, привязанной к имени файла страницы.
На практике редактор при формировании итоговых настроек для конкретной страницы собирает “снизу вверх” (страница → раздел → сайт), приоритет у более нижнего уровня.
Пример того, как в одном каталоге одновременно живут настройки раздела и конкретных страниц (это один файл .property.php):
<?php
return [
'section' => [
'layout_type' => 'wide-fixed',
'title' => 'Новости',
],
'page' => [
'index.php' => [
'title' => 'Новости — главная',
'description' => '...',
],
'detail.php' => [
'title' => 'Новость',
],
],
];
Правило: держать актуальные конфиги в simai.data, системные копии не править
Практическое правило для проекта на SIMAI Framework 4:
- Не править системную папку
/simai/(в ней — “ядро” SF4: системные конфиги, блоки, ассеты, мастер и т.д.). Эти файлы обновляются фреймворком и должны оставаться “эталонными”. - Все “живые” настройки конкретного сайта держать в
{site_dir}/simai.data/...и в.property.phpв каталогах разделов. Это как раз тот слой, который должен попадать в репозиторий проекта и сопровождаться командой. - Если нужно расширять/переопределять поведение, делать это через проектный слой (и при необходимости — отдельным модулем/расширением), а не через правку системных файлов.