Добавить блок на страницу landing.landing.addblock
Scope:
landingКто может выполнять метод: пользователь с правом «редактирование» сайта
Метод landing.landing.addblock добавляет новый блок на страницу и возвращает идентификатор созданного блока.
Если страница уже опубликована, для посетителей новый блок станет виден после команды «Опубликовать изменения» в интерфейсе или после вызова метода landing.landing.publication.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
scope |
Внутренний скоуп лендингов. Он не связан с REST-скоупом Для страниц типов |
|
lid* |
Идентификатор страницы. Идентификатор страницы можно получить методом landing.landing.getList, а также из результата методов landing.landing.add, landing.landing.addByTemplate и landing.landing.copy |
|
fields* |
Набор параметров нового блока (подробное описание) |
|
preventHistory |
Если |
Параметр fields
Обязательные параметры отмечены *
|
Название |
Описание |
|
CODE* |
Символьный код блока из репозитория. Код можно получить методом landing.block.getrepository: для Для блока, зарегистрированного приложением через landing.repo.register, используйте значение вида Доступность кода зависит от типа страницы и от верхнеуровневого параметра Если параметр не передан или передан пустой строкой, метод вернет ошибку |
|
AFTER_ID |
Идентификатор блока, после которого нужно вставить новый блок. Идентификатор блока можно получить методом landing.block.getList. Если передать идентификатор существующего блока на странице, новый блок будет добавлен сразу после него. Если параметр не передан, новый блок добавится в начало страницы. Если |
|
ACTIVE |
Флаг активности нового блока. Возможные значения:
По умолчанию — |
|
CONTENT |
HTML-содержимое блока. Позволяет заменить стандартный контент блока своим HTML-кодом. При этом код блока все равно должен быть доступен в репозитории для текущего типа страницы и |
|
RETURN_CONTENT |
Если передать |
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"lid": 351,
"fields": {
"CODE": "02.three_cols_big_1",
"AFTER_ID": 6428,
"ACTIVE": "Y"
}
}' \
"https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.landing.addblock.json"
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"lid": 351,
"fields": {
"CODE": "02.three_cols_big_1",
"AFTER_ID": 6428,
"ACTIVE": "Y"
},
"auth": "**put_access_token_here**"
}' \
"https://**put.your-domain-here**/rest/landing.landing.addblock.json"
try
{
const response = await $b24.callMethod(
'landing.landing.addblock',
{
lid: 351,
fields: {
CODE: '02.three_cols_big_1',
AFTER_ID: 6428,
ACTIVE: 'Y'
}
}
);
const result = response.getData().result;
console.info(result);
}
catch (error)
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'landing.landing.addblock',
[
'lid' => 351,
'fields' => [
'CODE' => '02.three_cols_big_1',
'AFTER_ID' => 6428,
'ACTIVE' => 'Y',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . var_export($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding block: ' . $e->getMessage();
}
BX24.callMethod(
'landing.landing.addblock',
{
lid: 351,
fields: {
CODE: '02.three_cols_big_1',
AFTER_ID: 6428,
ACTIVE: 'Y'
}
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'landing.landing.addblock',
[
'lid' => 351,
'fields' => [
'CODE' => '02.three_cols_big_1',
'AFTER_ID' => 6428,
'ACTIVE' => 'Y',
],
]
);
if (isset($result['error']))
{
echo 'Ошибка: ' . $result['error_description'];
}
else
{
echo '<pre>';
print_r($result['result']);
echo '</pre>';
}
Обработка ответа
HTTP-статус: 200
{
"result": 28597,
"time": {
"start": 1773923439,
"finish": 1773923439.57418,
"duration": 0.5741798877716064,
"processing": 0,
"date_start": "2026-03-19T15:30:39+03:00",
"date_finish": "2026-03-19T15:30:39+03:00",
"operating_reset_at": 1773924039,
"operating": 0.10522103309631348
}
}
Возвращаемые данные
|
Название |
Описание |
|
Идентификатор созданного блока. Если передан |
|
|
time |
Информация о времени выполнения запроса |
Объект result при RETURN_CONTENT = 'Y'
|
Название |
Описание |
|
id |
Идентификатор созданного блока |
|
sections |
Коды разделов блока из манифеста, объединенные в одну строку через запятую |
|
active |
Признак активности блока |
|
access |
Уровень доступа к блоку |
|
anchor |
Локальный якорь блока. По умолчанию новый блок получает якорь вида |
|
php |
Признак того, что в контенте блока есть PHP-код |
|
designed |
Признак дизайнерского блока |
|
repoId |
Идентификатор rest-блока из репозитория или |
|
content |
Подготовленный HTML-код блока |
|
content_ext |
Дополнительный HTML-код подключаемых расширений |
|
css |
Список CSS-ресурсов блока |
|
js |
Список JS-ресурсов блока. Для стандартных блоков из репозитория поле может содержать подключения. Для REST-блоков вида |
|
assetStrings |
Строки инициализации ресурсов, которые нужно добавить на страницу |
|
Языковые сообщения подключенных расширений. Если сообщения есть, поле возвращается как объект вида ключ-значение. Если дополнительных сообщений нет, может вернуться пустой массив |
|
|
manifest |
Манифест блока. Формат описан в разделе Манифест блока |
|
dynamicParams |
Параметры динамического блока |
|
requiredUserAction |
Поле содержит те же данные, что и |
Обработка ошибок
HTTP-статус: 400
{
"error": "BLOCK_CANT_BE_ADDED",
"error_description": "Cannot add block because it is not intended for this type of page."
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Возможные коды ошибок
|
Код |
Описание |
|
|
Не передан обязательный верхнеуровневый параметр |
|
|
Страница с идентификатором |
|
|
У пользователя нет прав для вызова метода или нет права редактировать страницу |
|
|
Код из |
|
|
Версия блока из репозитория выше версии установленного модуля landing |
|
|
Для блока не найден контент, в том числе если передан пустой |
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Копировать блок на страницу `landing.landing.copyblock`
- Удалить блок со страницы `landing.landing.deleteblock`
- Переместить блок ниже `landing.landing.downblock`
- Переместить блок на страницу `landing.landing.moveblock`
- Показать блок на странице `landing.landing.showblock`
- Переместить блок выше `landing.landing.upblock`
- Опубликовать страницу landing.landing.publication