Блоки главной (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. Подробнее - в кодах ошибок.