Блог Горошко Андрея Bitrix24 Изменить контент блока landing.block.updatenodes

Изменить контент блока landing.block.updatenodes

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Изменить контент блока landing.block.updatenodes», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Изменить контент блока landing.block.updatenodes

Тут может не хватать некоторых данных — дополним в ближайшее время

  • нужны правки под стандарт написания
  • не указаны типы параметров
  • не указана обязательность параметров
  • отсутствуют примеры
  • отсутствует ответ в случае успеха
  • отсутствует ответ в случае ошибки

> Scope: landing
>
> Кто может выполнять метод: любой пользователь

Метод landing.block.updatenodes изменяет контент блока. Возвращает _true_ или ошибку. Также метод применяется для обновления параметров динамических блоков, таких как список товаров, детальный товар, и некоторых других.

Входящие параметры и конфигурация метода

МетодОписаниеС версии
lid
unknown
Идентификатор страницы
block
unknown
Идентификатор блока
data
unknown
Массив селекторов и новых значений.
Например: data: {'.landing-block-node-text@1': 'new text!'}. Принцип тот же — селектор и его новое значение. Если вы уверены, что селектор в блоке один, то в данном случае вы можете отбросить счетчик @1.
Также data зависит от типов изменяемых нод. Подробнее смотрите пример ниже, за описанием типов обращайтесь к отдельной странице.

Практические примеры использования в коде

  • JS
    BX24.callMethod(
        'landing.block.updatenodes',
        {
            lid: 311,
            block: 6058,
            data: {
                '.landing-block-node-text': 'Текст, с html',
                '.landing-block-node-img': {src: '/some/path/picture.png', alt: 'Моя картинка'},
                '.landing-block-node-link': {text: 'Моя ссылка', href: 'https://bitrix24.com', target: '_blank'},
                '.landing-block-node-icon': ['fa-telegram', 'fa-skype'],
                '.landing-block-node-embed': {src: '//www.youtube.com/embed/q4d8g9Dn3ww?autoplay=1&controls=0&loop=1&mute=1&rel=0', source: 'https://www.youtube.com/watch?v=q4d8g9Dn3ww'},
            },
        }
        function(result)
        {
            if(result.error())
            {
                console.error(result.error());
            }
            else
            {
                console.info(result.data());
            }
        }
    );

Редактирование параметров динамических блоков

Есть ряд динамических блоков, параметры которых можно менять через REST. Например, количество товаров на странице. Сделать это можно следующим образом.

1. Посредством метода landing.block.getmanifest узнаем какие параметры у блока есть. Метод вернет массив манифеста, где нас интересует ключ attrs и параметры интересующего вас компонента динамического блока. В данном случае нам интересен bitrix:catalog.section.

    attrs:
    bitrix:catalog.section: Array(24)
    0: {name: "ID раздела", style: false, original_type: "component", component_type: "STRING", attribute: "SECTION_ID", …}
    1: {name: "Недоступные товары", style: false, original_type: "component", component_type: "LIST", attribute: "HIDE_NOT_AVAILABLE", …}
    2: {name: "Недоступные торговые предложения", style: false, original_type: "component", component_type: "LIST", attribute: "HIDE_NOT_AVAILABLE_OFFERS", …}
    3: {name: "По какому полю сортируем элементы", style: false, original_type: "component", component_type: "LIST", attribute: "ELEMENT_SORT_FIELD", …}
    4: {name: "Порядок сортировки элементов", style: false, original_type: "component", component_type: "LIST", attribute: "ELEMENT_SORT_ORDER", …}
    5: {name: "Валюта, в которую будут сконвертированы цены", style: false, original_type: "component", component_type: "LIST", attribute: "CURRENCY_ID", …}
    6: {name: "Тип цены", style: false, original_type: "component", component_type: "LIST", attribute: "PRICE_CODE", …}
    ...

2. Через метод landing.block.updatenodes изменяем необходимые параметры. Так сложилось исторически, что динамические параметры (атрибуты) изменяются именно через этот метод.

  • JS
        BX24.callMethod(
            'landing.block.updatenodes',
            {
                lid: 5597,
                block: 44131,
                data: {
                    'bitrix:catalog.section': {
                        attrs: {
                            'MESS_BTN_BUY': 'Add to my cart'
                        }
                    }
                },
                function(result)
                {
                    if (result.error())
                    {
                        console.error(result.error());
                    }
                    else
                    {
                        console.info(result.data());
                    }
                }
            }
        );

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Изменить контент блока landing.block.updatenodes»:

Использование современных стандартов D7 при работе с landing.block.updatenodes позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить поля остатков по складам catalog.storeproduct.getFieldsПолучить поля остатков по складам catalog.storeproduct.getFields

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить поля остатков по складам catalog.storeproduct.getFields», проанализируем лучшие

Интеграция Битрикс24 с сервисом Sign.me / Госключ для электронного подписания документовИнтеграция Битрикс24 с сервисом Sign.me / Госключ для электронного подписания документов

Профессиональная настройка и комплексная автоматизация Битрикс24 CRM позволяет выстроить прозрачный отдел продаж, исключить потерю обращений и автоматизировать рутинный документооборот компании. Услуга «Интеграция Битрикс24 с сервисом Sign.me / Госключ для электронного

Событие при удалении задачи OnTaskDeleteСобытие при удалении задачи OnTaskDelete

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Событие при удалении задачи OnTaskDelete». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.