Обновление HL записи инфоблока

Обновление HL записи инфоблока

12.06.2018

При создании языковых версий битрикс сайта возникла необходимость часть общего контента, который не переводится, но от него зависит функционал, вынести как-то хранение отдельно чтобы изменения в основной версии сайта автоматически менялись у других. В результате было принято решение хранить такие данные в Highload-справочнике.
Привязку к элементам инфоблоков делал на базе символьного кода элемента, так как на разных языковых версиях сайта это уникальное значение. В XML_ID Highload-справочника храним значение символьного кода, по которому будем искать обновляемый элемент.
Далее возникает задача обновления таких данных при внесении изменений. Решаем такую задачу с помощью обработчика в файле init.php скачать рабочий пример

Код обработчика обновления HL записи инфоблока

// регистрируем обработчик обновления записей кода камеры на иностранных версиях сайтов
AddEventHandler(«iblock», «OnAfterIBlockElementUpdate», Array(«upHighload», «OnAfterIBlockElementUpdateHandler»));

class upHighload
{
// создаем обработчик события «OnAfterIBlockElementUpdate»
function OnAfterIBlockElementUpdateHandler(&$arFields)
{
if(!$arFields[«RESULT»]) return false;
If($arFields[‘IBLOCK_ID’] == 17) { //инфоблок камер русской версии
$hl_code =$arFields[‘CODE’]; //Символьный код элемента
//Подготовка: по символьному коду получаем ID записи справочника
CModule::IncludeModule(‘highloadblock’);

$hlblock = HL\HighloadBlockTable::getById(1)->fetch(); // Вместо 2 подставьте id highload блока
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entityClass = $entity->getDataClass();

$res = $entityClass::getList(array(
‘select’ => array(‘*’),
‘filter’ => array(‘UF_XML_ID’ =>$hl_code) //внешний код значения справочника
));

$row = $res->fetch();
//получаем ID записи справочника
$hl_id=$row[‘ID’];
//Обновление:
$hl_name =$arFields[‘NAME’];
$hl_code =$arFields[‘CODE’];
CModule::IncludeModule(‘iblock’);
//Получаем код камеры
$res_code = CIBlockElement::GetProperty(17, $arFields[«ID»], array(«sort» => «asc»), Array(«CODE»=>»code»));
while ($ob_code = $res_code->GetNext()) {
$one_code = $ob_code[‘~VALUE’];
}
//Получаем да/нет о работе камеры
$res_work = CIBlockElement::GetProperty(17, $arFields[«ID»], array(«sort» => «asc»), Array(«CODE»=>»works»));
while ($ob_work = $res_work->GetNext()) {
$one_work = $ob_work[‘VALUE_ENUM’];
// AddMessage2Log($ob_work);
}
Loader::includeModule(«highloadblock»);
$hlbl = 1; // Указываем ID нашего highloadblock блока к которому будет делать запросы.
$hlblock = HL\HighloadBlockTable::getById($hlbl)->fetch();

$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
// Массив полей для обновления
$data = array(
‘UF_CODE’ => $one_code[‘TEXT’]
);
$result = $entity_data_class::update($hl_id, $data); // где $hl_id — id обновляемой записи
/**/
}
}
}


Ещё статьи:

18.01.2023 Нюансы перехода битрикс на РНР 8.0
С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
Но без нюансов и ошибок... ID: 431

10.01.2023 БУС окончательно всё?
Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б... ID: 426

30.08.2022 Типовые претензии к подрядчику и к битрикс
По свежим следам я собрал типовые претензии к подрядчику и к битрикс. Мной был проведён аудит и я увидел, что техническое состояние сайта хорошее, нареканий... ID: 338

Новые статьи в блоге:

25.01.2023 Ошибка работы веб форм битрикс в аякс режиме
Возникла задача внедрить битрикс формы на сайт битрикс, но нюанс в том, что страница лендинг в HTML без подключения битрикс шаблона.
В целом я не предполагал,... ID: 434

19.01.2023 Ник ру покупает отзывы, но выше дна не подняться
Самый убогий хостинг провайдер, который ворует домены у клиентов покупает отзывы. ID: 433

19.01.2023 Ник ру жулики воруют домены
В очередной раз провайдер nic.ru, так зазываемый руцентр и его техподдержка пробили очередное дно, в моём рейтинге это худший провайдер в России. В от... ID: 432

Возврат к списку

© 2015-2023 Web админ
Связаться по WhatsApp