Привет!
Начинаю знакомиться с Битриксом.
Нужно вместо удаления элемента из каталога товаров его деактивировать (если кол-во просмотров >= 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;
}
}
}
}
|