Guest User

Untitled

a guest
Jul 8th, 2020
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.73 KB | None | 0 0
  1. <?
  2. if (! defined ( "B_PROLOG_INCLUDED" ) || B_PROLOG_INCLUDED !== true) die ();
  3. use Bitrix\Main\Loader;
  4.  
  5. if (!isset($arParams["CACHE_TIME"]))
  6. {
  7.     $arParams["CACHE_TIME"] = 36000000;
  8. }
  9.  
  10. if (!$USER->IsAuthorized())
  11. {
  12.     ShowError (GetMessage("NO_AUTORIZ"));
  13.     return;
  14. }
  15.  
  16. $arParams["PRODUCTS_IBLOCK_ID"] = intval(trim($arParams["PRODUCTS_IBLOCK_ID"]));
  17. if(!($arParams["PRODUCTS_IBLOCK_ID"] > 0))
  18. {
  19.     ShowError (GetMessage("NO_IBLOCK"));
  20.     return;
  21. }
  22.  
  23. $arParams["PROP_CODE"] = trim($arParams["PROP_CODE"]);
  24. if( strlen($arParams["PROP_CODE"]) < 1)
  25. {
  26.     ShowError (GetMessage("NO_PROP_CODE"));
  27.     return;
  28. }
  29. global $CACHE_MANAGER;
  30. if ($this->startResultCache(false, $USER->GetID()))
  31. {
  32.     if (!Loader::includeModule("iblock"))
  33.     {
  34.         $this->abortResultCache();
  35.         ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
  36.         return;
  37.     }
  38.     $CACHE_MANAGER->RegisterTag('iblock_id_'.$arParams["PRODUCTS_IBLOCK_ID"]);// [ex2-107]
  39.     // user
  40.     $arOrderUser = array("id");
  41.     $sortOrder = "asc";
  42.     $arFilterUser = array(
  43.         "ACTIVE" => "Y"
  44.     );
  45.    
  46.     $arResult["USERS"] = array();
  47.     $rsUsers = CUser::GetList($arOrderUser, $sortOrder, $arFilterUser); // выбираем пользователей
  48.     while($arUser = $rsUsers->GetNext())
  49.     {
  50.         $arResult['USERS'][$arUser["ID"]] = $arUser["LOGIN"];
  51.     }  
  52.  
  53.     //Вытаскиваем элементы
  54.     $arSelectElems = array (
  55.         "ID",
  56.         "IBLOCK_ID",
  57.         "NAME",
  58.         "PREVIEW_TEXT",
  59.         "PROPERTY_PRICE",
  60.         "PROPERTY_MATERIAL",
  61.         "PROPERTY_LIKEUSER",
  62.         "PROPERTY_ARTNUMBER",
  63.         "DETAIL_PAGE_URL",
  64.         "PROPERTY_".$arParams["PROP_CODE"]
  65.     );
  66.     //LIKEUSER
  67.     $arFilterElems = array (
  68.         "IBLOCK_ID" => $arParams["IBLOCK_ID"],
  69.         "ACTIVE" => "Y",
  70.     );
  71.  
  72.     $arSortElems = array (
  73.         //"NAME" => "ASC"
  74.     );
  75.  
  76.     $arResult["ELEMENTS"] = array();
  77.     $arResult["ELEMENTS_ID"] = array();
  78.     $rsElementElement = CIBlockElement::GetList($arSortElems, $arFilterElems, false, false, $arSelectElems);
  79.     while($arElement = $rsElementElement->GetNext())
  80.     {  
  81.         if (!empty($arElement["PROPERTY_".$arParams["PROP_CODE"]."_VALUE"]))
  82.         {
  83.             if ($arElement["PROPERTY_".$arParams["PROP_CODE"]."_VALUE"] == $USER->GetID()) {
  84.                 $arResult["LIKES_ID_CURRENT"][] = $arElement["ID"];
  85.             }else{
  86.                 $arResult["LIKES_ID"][$arElement["ID"]][$arElement["PROPERTY_".$arParams["PROP_CODE"]."_VALUE"]] = $arResult['USERS'][$arElement["PROPERTY_".$arParams["PROP_CODE"]."_VALUE"]];
  87.                 $arResult["LIKES_ID2"][$arElement["PROPERTY_".$arParams["PROP_CODE"]."_VALUE"]][] = $arElement["ID"];
  88.                 $arResult["LIKES_ID_OTHER"][] = $arElement["ID"];
  89.             }
  90.         }
  91.         $arResult["ELEMENTS"][$arElement["ID"]] = $arElement;
  92.         $arResult["ELEMENTS_ID"][] = $arElement["ID"];
  93.     }
  94.  
  95.     $arResult["LIKES_ID_CURRENT"] = array_unique($arResult["LIKES_ID_CURRENT"]); // товары текущего пользователя
  96.     $arResult["LIKES_ID_OTHER"] = array_unique($arResult["LIKES_ID_OTHER"]); // товары других пользователей
  97.  
  98.     foreach ($arResult["LIKES_ID_CURRENT"] as $key => $value) {
  99.         if (in_array($value, $arResult["LIKES_ID_OTHER"])) {
  100.             $arResult["LIKES_ID_OTHER2"][] = $value;
  101.         }
  102.     }
  103.  
  104.     foreach ($arResult["LIKES_ID_OTHER2"] as $k => $v) {
  105.         $arResult["LIKES_ID_OTHER3"] = array_keys ($arResult["LIKES_ID"][$v]);
  106.     }
  107.    
  108.     foreach ($arResult["LIKES_ID_OTHER3"] as $kk => $vv) {
  109.         $arResult["LIKES_ID_OTHER4"] = $arResult["LIKES_ID2"][$vv];
  110.     }
  111.     $arResult["LIKES_ID_OTHER4"] = array_unique($arResult["LIKES_ID_OTHER4"]);
  112.  
  113.     $arResult["COUNT_CLASSIFIER"] = count($arResult["LIKES_ID_CURRENT"]);
  114.  
  115.     $this->SetResultCacheKeys(array(
  116.         "COUNT_CLASSIFIER",
  117.     ));
  118.    
  119.     $this->includeComponentTemplate();
  120.     $this->endResultCache();
  121. }
  122. else
  123. {
  124.     $this->abortResultCache();
  125. }
  126. $APPLICATION->SetTitle("Избранных элементов  - ".$arResult["COUNT_CLASSIFIER"]);
Add Comment
Please, Sign In to add comment