Advertisement
vitvayti

Untitled

Jun 20th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.01 KB | None | 0 0
  1. function changeCats() {
  2.  
  3.     CModule::IncludeModule('catalog');
  4.  
  5.     $cats = array();
  6.     $allowed = array();
  7.     $bs = new CIBlockSection;
  8.  
  9.     $arFilter = Array('IBLOCK_ID'=> IBLOCK_CATALOG);
  10.  
  11.     $db_list = CIBlockSection::GetList(Array(), $arFilter, true);
  12.  
  13.     while($ar_result = $db_list->Fetch())
  14.     {
  15.         $cats[$ar_result['DEPTH_LEVEL']][] = $ar_result;
  16.     }
  17.  
  18.     for ($i = count($cats); $i > 0; $i--) {
  19.         foreach ($cats[$i] as $ar_result){
  20.             $checked = 0;
  21.             $has_products = 0;
  22.             $arSelect = Array("ID", "CATALOG_GROUP_2");
  23.             $arFilter = Array(
  24.                 "IBLOCK_ID"=> IBLOCK_CATALOG,
  25.                 "ACTIVE"=>"Y",
  26.                 "SECTION_ID" => $ar_result['ID'],
  27.                 '!CATALOG_QUANTITY' => 0
  28.             );
  29.             $res = CIBlockElement::GetList(Array(), $arFilter, false, Array(false), $arSelect);
  30.             while($ar_fields = $res->GetNext())
  31.             {
  32.                 if ($has_products == 0){
  33.                     $has_products = 1;
  34.                 }
  35.                 if ($ar_fields['CATALOG_PRICE_2'] > 0){
  36.                     $checked = 1;
  37.                 }
  38.             }
  39.             if ($checked == 0 && $has_products == 1 && !$allowed[$ar_result['ID']]) {
  40.  
  41.                 $arFields = Array(
  42.                     "UF_NOT_AVAILABLE" => 1
  43.                 );
  44. //                echo '<br/>Скрыт раздел: '.$ar_result['NAME'].'--'.$ar_result['ID'];
  45.             } else if ($has_products == 0 && !$allowed[$ar_result['ID']]) {
  46.                 $arFields = Array(
  47.                     "UF_NOT_AVAILABLE" => 1
  48.                 );
  49. //                echo '<br/>Скрыт раздел: '.$ar_result['NAME'].'--'.$ar_result['ID'];
  50.             } else {
  51.                 $allowed[$ar_result['IBLOCK_SECTION_ID']] = 'Y';
  52.                 $arFields = Array(
  53.                     "UF_NOT_AVAILABLE" => 0
  54.                 );
  55.             }
  56.  
  57.             $bs->Update($ar_result['ID'], $arFields);
  58.  
  59.         }
  60.     }
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement