3. Описание MCP-сервера › 3.3 Движок › Статика › engine_static_save

Сохраняет существующий файл статики: тело и, если передано, описание бандла.

Право

«Прямой доступ → Разработка → Изменение данных» (AGENT_ENGINE_DEV_WRITE).

Параметры

Параметр Тип Что это
path строка путь файла
[content] строка новое тело файла
[content_source] строка файл на этом компьютере — абсолютный путь или путь от папки магазина — вместо content: тело уходит байт в байт, не проходя через переписку
[bundle] объект описание бандла: param_info и unit_info, как их отдаёт engine_static_load
[build] да/нет поднять номер сборки магазина

Нужен content или content_source: сохранение без тела отказывает, иначе оно очистило бы файл.

bundle записывает описание бандла целиком, из обоих полей, и сразу пересобирает бандлы группы. Без bundle у файла остаётся прежнее описание; оба поля пустые — файл выходит из всех бандлов. В param_info бандлы перечисляются через запятую, приоритет — после двоеточия: melbis.css: 10, print.css: 2. Имя бандла пишется с расширением; в нём допустимы латинские буквы, цифры, точка и подчёркивание, остальное вырезается. Подробно — «Сборка статики».

build поднимает номер сборки, который страница подвешивает к своим css и js: без него браузеры посетителей продолжают брать прежние файлы из своего кеша.

Что ещё делает сохранение — пересобирает бандлы группы, пишет версию, сбрасывает кеш модуля — описано в «Статика».

Ответ

{"path": "./../templates/default/statics/melbis/main.css", "bundle": false, "build": false,
 "warning": ""}
Поле Что это
path путь сохранённого файла
bundle передано ли описание бандла
build поднят ли номер сборки
warning ключи, которых при сборке не нашлось ни в одном .psv бандла, одной строкой: Warning! Unknown: PRIMARY_HOWER (buttons.css);. Перечисляет пропуски во всех бандлах группы, какой бы файл ни сохранялся. Пусто, если пропусков нет или сборки не было

Отказы

Ответ Когда
… is not a static file: statics lie in… путь лежит вне статики: статика — это templates/<группа>/statics/, файлы рядом с шаблонами модуля, кроме .htm, и файлы в корне сайта, кроме php
No such file: … SAVE changes a file, it does not create one… файла нет на сервере — его создают engine_static_add
Say content, or content_source with a path on this machine… не указаны ни content, ни content_source
Builds live in a template: … belongs to none of them. bundle передан файлу вне группы шаблонов
<файл>.psv gives no array of keys back .psv бандла не вернул массив ключей; файл уже сохранён
PHP Runtime Exception или PHP Shutdown Exception, следом File: …/<файл>.psv : <строка> и текст ошибки ошибка в коде .psv бандла; файл уже сохранён
Can't include file to bundle: <путь> описание бандла осталось от файла, которого нет на диске; файл уже сохранён
path is required не указан path

Общие отказы — «Ответы и отказы».