# changeportaldefaultheme.import.apply

Scope: changeportaldefaultheme

Кто может вызывать: Пользователь с правом записи на модуль для siteId (UserHelper::canConfigureBranding). Подробнее: Права доступа

Применить архив настроек темы из b_file к указанному сайту

HTTP: POST

Побочные эффекты: импортирует опции и CSS, пересобирает LESS

При isThemeSample=true (Y / true / 1): из архива применяются группы auth, auth_zephir, noauth, noauth_zephir; остальные ключи (module_*, files, auth_main и т.д.) берутся из текущих настроек сайта, если они уже заданы.

Параметры метода

Параметр Тип Обяз. Описание
siteId string нет ID сайта. По умолчанию — сайт по умолчанию
fileId int да ID ZIP-файла в b_file (напр. из export.download)
isThemeSample bool|string нет Y / true / 1 — режим «образец темы» (см. выше). По умолчанию false

Возвращаемые данные

Ответ в конверте модуля: result.result — настройки темы после импорта (формат как у theme.get); result.error.

Обработка ошибок

Справочник кодов ошибок.

Код Описание
UNAUTHORIZED Пользователь не авторизован
ACCESS_DENIED Нет права записи на модуль для сайта
SITE_NOT_FOUND Сайт с указанным siteId не найден
VALIDATION_ERROR Не передан или некорректный fileId
INVALID_ARCHIVE Некорректный или повреждённый ZIP
INVALID_FILE_TYPE Недопустимый тип файла внутри архива
FILE_TOO_LARGE Архив или вложение превышает лимит
INTERNAL_ERROR Внутренняя ошибка сервера

Пример запроса (POST)

Прогон на портале 76593.dev.wehive.digital, пользователь вебхука 1, fileId из предварительного export.download.

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/changeportaldefaultheme.import.apply.json" \
          -H "Content-Type: application/x-www-form-urlencoded" \
          -H "Accept: application/json" \
          --data-urlencode "siteId=s1" \
          --data-urlencode "fileId=1217" \
          --data-urlencode "isThemeSample=N"
        

Пример ответа

{
          "result": {
            "result": {
              "auth": [],
              "noauth": [],
              "auth_zephir": [],
              "noauth_zephir": [],
              "auth_main": [],
              "module_mode": "N",
              "module_admin": "Y",
              "module_forbid_theme": "N"
            },
            "error": null
          }
        }
        

Пример ответа (ошибка)

Запрос без fileId:

{
          "result": {
            "result": null,
            "error": {
              "code": "VALIDATION_ERROR",
              "message": "Обязательный параметр fileId не указан или некорректен.",
              "details": {
                "field": "fileId"
              }
            }
          }
        }
        

См. также