landing.block.updatenodes
Scope: landing Права на выполнение: для всех
Описание
landing.block.updatenodes(lid, block,data)
Метод для изменения контента блока. Возвращает true или ошибку. Также метод применяется для обновления параметров динамических блоков, таких как список товаров, детальный товар, и некоторых других.
Параметры
Метод | Описание | С версии |
---|---|---|
lid | Идентификатор страницы | |
block | Идентификатор блока | |
data | Массив селекторов и новых значений.
Например: data: {'.landing-block-node-text@1': 'new text!'} . Принцип тот же - селектор и его новое значение. Если вы уверены, что селектор в блоке один, то в данном случае вы можете отбросить счетчик @1.
Также data зависит от типов изменяемых нод. Подробнее смотрите пример ниже, за описанием типов обращайтесь к отдельной странице. |
Пример
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. Например, количество товаров на странице. Сделать это можно следующим образом.
- Посредством метода 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", …} ...
- Через метод landing.block.updatenodes изменяем необходимые параметры. Так сложилось исторически, что динамические параметры (атрибуты) изменяются именно через этот метод
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()); } } } );
© «Битрикс», 2001-2024, «1С-Битрикс», 2024