Документация для разработчиков
Темная тема

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. Например, количество товаров на странице. Сделать это можно следующим образом.

  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 изменяем необходимые параметры. Так сложилось исторически, что динамические параметры (атрибуты) изменяются именно через этот метод
    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