Код |
---|
<?php AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("StartRatingUpdate", "Update")); class StartRatingUpdate { function Update(&$arFields) { if ($arFields['IBLOCK_ID'] == BOXER_IBLOCK_ID) { $db_props = CIBlockElement::GetProperty( $arFields['IBLOCK_ID'], $arFields['ID'], ['sort' => 'asc'], ['CODE' => 'ATT_BXREC_RT'] ); if ($ar_props = $db_props->Fetch()) { $bxrecRatingVal = $arFields['PROPERTY_VALUES'][$ar_props["ID"]][$ar_props["PROPERTY_VALUE_ID"]]['VALUE']; if (!empty($bxrecRatingVal)) { $startRatingCalc = number_format(1000 + 50 * log($bxrecRatingVal), 2, ',', ' '); CIBlockElement::SetPropertyValueCode($arFields['ID'], "ATT_RBX_RT", $startRatingCalc); } } } } } ?> |
Доброго дня! Помогите, не могу разобраться с работой события
pavelmbx@gmail.com: 07.11.2019 13:18:31
Что я делаю не так? В коде ниже в переменную $bxrecRatingVal значение "прилетает" только со второго раза. Т.е. я открываю редактирование элемента, заполняю значение свойства, нажимаю сохранить - в переменной пусто. Захожу снова в редактирование элемента и ничего не меняя жму "Сохранить" ещё раз и тогда в переменную попадает заданное мной значение.
|
Михаил Базаров: 07.11.2019 20:51:51
Событие запускается при обновлении элемента "OnAfterIBlockElementUpdate" - именно обновление существующего.
Отработайте и "OnAfterIBlockElementAdd" - добавление
|
Михаил Базаров: 07.11.2019 20:58:52
А, не внимательно прочитал- итак редактируете существующий элемент.
Но свой поссаж оставлю- мало ли кому пригодится, при добавлении элемента. У вас, вот эта проверка точно выполняется корректно?
|
pavelmbx@gmail.com: 07.11.2019 23:33:59
Разобрался.
$bxRecRatingVal = $ar_props['VALUE']; |
1С-Битрикс на моем Boosty канале
Блог-note: заметки разработчика
Связанные элементы в карточке товара, с помощью catalog.section
Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элементы внутри карточки товара. Д...
Сгенерировать скидочные купоны, при заказе и отправить на почту
Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны для скидки (правила корзины) и ...
Как добавить режим редактирования элементов в собственном компоненте Битрикс
Задача: добавить режим редактирования и удаления элементов в собственном компоненте.
Менять большую картинку, при клике на маленькую, в детальной карточке
Мини скриптик, может кому пригодится для каталога товаров или новостей при использовании дополнительных картинок (обычно...
Получить и вывести все цены товара в 1С-Битрикс
Задача: получить и вывести все цены товара по его ID в каталоге 1С-Битрикс (например, в детальной карточке catalog.e...
Произвольные ссылки в элементе из свойства инфоблока
Задача: предоставить контент-менеджерам возможность добавлять произвольные ссылки внутри карточки товара. Управление ссы...
Получить все товары из всех заказов пользователя. История купленных товаров.
Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленных товаров. Не путать с истори...
Открытие мобильного приложения Apache Cordova по ссылке
Достаточно часто нужно реализовывать открытие мобильного приложения по ссылке. Например: при отправке ссылки на электоро...
Добавить все свойства инфоблока в умный фильтр одним разом
Если у вас достаточно много свойств, в инфоблоке с товарами, например: больше 1000-чи, после интеграции с 1С или импорта...