Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnIBlockElementAdd");
- AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "OnIBlockElementUpdate");
- CModule::IncludeModule("iblock");
- function OnIBlockElementAdd(&$arFields)
- {
- if($arFields['IBLOCK_ID'] == 10){
- $average_rating = 0;
- $count = 0;
- $is_active = false;
- $res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => 10, 'ACTIVE' => 'Y', 'PROPERTY_PRODUCT_ID'=> $arFields['PROPERTY_VALUES']['PRODUCT_ID']), false, false, array("ID", 'PROPERTY_RATING'));
- while($ar = $res->GetNext()){
- $is_active = true;
- $count++;
- $average_rating += $ar['PROPERTY_RATING_VALUE'];
- }
- $average_rating = round($average_rating / $count);
- if($is_active){
- CIBlockElement::SetPropertyValuesEx($arFields['PROPERTY_VALUES']['PRODUCT_ID'], 2, array('COMMENTS_CNT' => $count, 'rating' => $average_rating));
- }
- }
- }
- function OnIBlockElementUpdate(&$arFields)
- {
- if( ( $arFields['IBLOCK_ID'] == 2 && !CCatalogSKU::IsExistOffers($arFields['ID'],$arFields['IBLOCK_ID']) ) || $arFields['IBLOCK_ID'] == 3){
- $ar_res = CCatalogProduct::GetByID($arFields['ID']);
- if($ar_res['QUANTITY'] == 0){
- $not_available = ($arFields['IBLOCK_ID'] == '3') ? '33': '35';
- $porduct_state = ($arFields['IBLOCK_ID'] == '3') ? '92': '60';
- $arFields['PROPERTY_VALUES'][$porduct_state] = [ 0 => ["VALUE" => $not_available] ];
- }
- }
- if($arFields['IBLOCK_ID'] == 2){
- if($arFields['PROPERTY_VALUES'][60][0]['VALUE'] == '22' || $arFields['PROPERTY_VALUES'][60][0]['VALUE'] == '23'){
- $arFields['PROPERTY_VALUES'][59] = [ 0 => ["VALUE" => 20] ];
- }
- }
- if($arFields['IBLOCK_ID'] == 10){
- $average_rating = 0;
- $count = 0;
- $is_active = false;
- $res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => 10, 'ACTIVE' => 'Y', 'PROPERTY_PRODUCT_ID'=> $arFields['PROPERTY_VALUES']['81']['5061']['VALUE']), false, false, array("ID", 'PROPERTY_RATING'));
- while($ar = $res->GetNext()){
- $is_active = true;
- $count++;
- $average_rating += $ar['PROPERTY_RATING_VALUE'];
- }
- $average_rating = round($average_rating / $count);
- if($is_active){
- CIBlockElement::SetPropertyValuesEx($arFields['PROPERTY_VALUES']['81']['5061']['VALUE'], 2, array('COMMENTS_CNT' => $count, 'rating' => $average_rating));
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement