Работа с объектом
Внимание! Мы настоятельно рекомендуем ознакомиться сначала с REST-документацией модуля Сайты, чтобы понять как модуль функционирует (тем более REST доступен и в коробочной версии). Данную документацию рассматривайте как подспорье при работе в коробке, когда вам действительно мало функционала REST, или вы хотите детальнее разобраться в API.
Объект сущности Блок может существовать только в составе страницы. Поэтому работа с объектом Блока может начинаться только после инициации страницы. Об этом вы можете узнать в соответствующем разделе.
Вообще, API работы с блоками может показаться нелогичным и громоздким. Почему мол нельзя обратиться по определенному ИД к конкретному блоку и поменять, допустим, ему какое-то поле. Так сложилось исторически и на то были свои причины. Использовать ли данный API в своей работе – решать уже вам.
Пример кода "обертки" для доступа к блоку или блокам.
if (\Bitrix\Main\Loader::includeModule('landing'))
{
\Bitrix\Landing\Landing::setEditMode(true);
$landing = \Bitrix\Landing\Landing::createInstance(
1
);
if ($landing->exist())
{
foreach ($landing->getBlocks() as $block)
{
// непосредственно работа с нужным блоком
if ($block->getId() == 45013)
{
$block->setActive(false);
var_dump($block->isActive());
$landing->getError()->copyError(
$block->getError()
);
}
}
}
foreach ($landing->getError()->getErrors() as $error)
{
echo $error->getCode() . ': ';
echo $error->getMessage();
echo "\n";
}
}
Обратите внимание на обработку ошибок. Внутри области работы с блоком происходит передача ошибок от методов блока к общей обработке в рамках методов страницы. Вы можете так и не делать, обрабатывая ошибки при работе с блоками отдельно.