Блоки главной (homepage.blocks.*)

Методы для каталога блоков главной страницы (зоны «центр» и «сайдбар»), изменения настроек блоков и получения данных блока для мобильного приложения. REST блоки не создаёт, не удаляет и не пишет файлы: блок - это каталог с PHP-файлом в /local/ithive.homepage/blocks/<code>/ (center.php и/или right.php), который создаёт разработчик или ИИ по руководству, а пользователь выгружает на портал. REST меняет только настройки блока на сайте. Руководство: Как добавить кастомный блок главной.

Методы

Метод HTTP Описание
homepage.blocks.list GET Каталог блоков (встроенные и локальные), недоступные по правам скрыты
homepage.blocks.get GET Блок по code и zone
homepage.blocks.update POST Изменить настройки блока на сайте (admin): active, sort, title; для локальных блоков ещё rights, mobile, menu, left_menu
homepage.blocks.data GET Данные блока для мобильного приложения

Методов homepage.blocks.add и homepage.blocks.delete нет: блок появляется на портале, когда файл блока выгружен в /local, и исчезает, когда файл блока удалён.

Общие положения

  • Блок адресуется парой code + zone; zone принимает center или right и обязателен везде, где адресуется один блок. Файлы с одним именем в center_block/ и right_block/ дают два блока одного кода (по одному в каждой зоне) с раздельными настройками.
  • siteId необязателен, по умолчанию берётся текущий сайт. Все изменяемые данные (active, sort, title, rights, mobile, menu, left_menu) хранятся в настройках главной (опция componentsettings) указанного сайта.
  • Источник блока (source): builtin - встроенный, local - локальный из файла /local/ithive.homepage/blocks/center_block/<code>.php или /local/ithive.homepage/blocks/right_block/<code>.php (код - имя файла без .php). Название по умолчанию - код блока, sort по умолчанию - 500 (для локального) или порядок встроенного блока.
  • Для встроенных блоков через update доступны только active, sort и title (то же, что даёт страница «Настроить Главную»); rights, mobile, menu, left_menu отклоняются с VALIDATION_ERROR.
  • Эффективное описание блока = то, что обнаружил модуль (код, зона, файл, источник) плюс настройки сайта (название, sort, active, права, мобильный контракт, меню). Страница «Настроить Главную» не редактирует rights, mobile, но не теряет их при сохранении; menu (ссылка) и left_menu блока центра из /local редактируются там же (флаг «Вывести в левое меню» и поле ссылки рядом с ним), в том же хранилище, что и REST. Новый блок из /local по умолчанию не активен (active = false): включите его в «Настроить Главную» или update с {"active": true}.

Объект блока

Поле Тип Описание
code string Код блока
zone string center или right
source string builtin или local
title string Название (сохранённое в настройках, иначе код блока)
sort int Эффективная сортировка на сайте
defaultSort int Сортировка по умолчанию (до настроек сайта)
active bool Включён ли блок на сайте (новый локальный блок из /local выключен, пока его не включат)
siteId string Код сайта
rights object admin (bool), groups (int[]); пустые - виден всем авторизованным
mobile object type (none, native-json, webview-url), url, dataMethod (имя REST-метода <scope>.<entity>.<action>)
menu object или null url и title пункта левого меню (только зона center)
left_menu bool Показан ли пункт меню в левом меню (только при заданном menu)

Пути к файлам блока и другие внутренности в ответ не попадают.

Ошибки

UNAUTHORIZED, ACCESS_DENIED, VALIDATION_ERROR, NOT_FOUND, NOT_SUPPORTED, INTERNAL_ERROR. Подробнее - в кодах ошибок.

См. также

Предыдущая
Следующая