Работа с объектом
Внимание! Мы настоятельно рекомендуем ознакомиться сначала с 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"; } }
Обратите внимание на обработку ошибок. Внутри области работы с блоком происходит передача ошибок от методов блока к общей обработке в рамках методов страницы. Вы можете так и не делать, обрабатывая ошибки при работе с блоками отдельно.