Привет!
Начинаю знакомиться с Битриксом.
Нужно вместо удаления элемента из каталога товаров его деактивировать (если кол-во просмотров >= 1).
После функции Update запускаю print_r и значение "ACTIVE" равно "N". Но когда смотрю значение элемента в каталоге через print_r($arResult), то значение снова равно "Y".
Не знаю, может есть какое-то правило, которое перебивает обновленные мной значения?
Начинаю знакомиться с Битриксом.
Нужно вместо удаления элемента из каталога товаров его деактивировать (если кол-во просмотров >= 1).
После функции Update запускаю print_r и значение "ACTIVE" равно "N". Но когда смотрю значение элемента в каталоге через print_r($arResult), то значение снова равно "Y".
Не знаю, может есть какое-то правило, которое перебивает обновленные мной значения?
Код |
---|
AddEventHandler("iblock", "OnBeforeIBlockElementDelete", Array("CIBlockDelHandler", "OnBeforeIBlockElementDeleteHandler")); class CIBlockDelHandler { function OnBeforeIBlockElementDeleteHandler($ID) { $res = CIBlockElement::GetByID($ID); if($arFields = $res->GetNext()) { if ($arFields["SHOW_COUNTER"] != "" && (int)$arFields["SHOW_COUNTER"] >= 1) { $el = new CIBlockElement; $arLoadProductArray = array( "ACTIVE" => "N" ); $res = $el->Update($ID, $arLoadProductArray); global $APPLICATION; $APPLICATION->throwException("Нельзя удалить товар! Количество просмотров равно " . $arFields["SHOW_COUNTER"]); return false; } } } } |