home chevron_right
Файлы настроек: site\_config, structure\_config, page/section property, .framework.config.php, .demo.config.php

Основные конфиги в {site_dir}/simai.data/config: site_config, structure_config, файлы property для разделов/страницlink

В 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 (демо-настройки)link

У 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-файлы разделов/страниц используются редакторомlink

И админ-скрипты настроек, и публичные редакторы в 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, системные копии не правитьlink

Практическое правило для проекта на SIMAI Framework 4:

  • Не править системную папку /simai/ (в ней — “ядро” SF4: системные конфиги, блоки, ассеты, мастер и т.д.). Эти файлы обновляются фреймворком и должны оставаться “эталонными”.
  • Все “живые” настройки конкретного сайта держать в {site_dir}/simai.data/... и в .property.php в каталогах разделов. Это как раз тот слой, который должен попадать в репозиторий проекта и сопровождаться командой.
  • Если нужно расширять/переопределять поведение, делать это через проектный слой (и при необходимости — отдельным модулем/расширением), а не через правку системных файлов.