Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. <?
  2. if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
  3. /** @var CBitrixComponent $this */
  4. /** @var array $arParams */
  5. /** @var array $arResult */
  6. /** @var string $componentPath */
  7. /** @var string $componentName */
  8. /** @var string $componentTemplate */
  9. /** @global CDatabase $DB */
  10. /** @global CUser $USER */
  11. /** @global CMain $APPLICATION */
  12.  
  13. use Bitrix\Main\Loader,
  14. Bitrix\Main,
  15. Bitrix\Iblock;
  16.  
  17. if(!isset($arParams["CACHE_TIME"]))
  18. $arParams["CACHE_TIME"] = 360000000;
  19.  
  20. $arParams["IBLOCK_CATALOG_ID"] = intval($arParams["IBLOCK_CATALOG_ID"]);
  21. if($arParams["IBLOCK_CATALOG_ID"]<=0)
  22. $arParams["IBLOCK_CATALOG_ID"] = 2;
  23.  
  24. $arParams["IBLOCK_NEWS_ID"] = intval($arParams["IBLOCK_NEWS_ID"]);
  25. if($arParams["IBLOCK_NEWS_ID"]<=0)
  26. $arParams["IBLOCK_NEWS_ID"] = 1;
  27.  
  28. $arParams["PROPS_LINK"] = trim($arParams["PROPS_LINK"]);
  29. if(strlen($arParams["PROPS_LINK"])<=0)
  30. $arParams["PROPS_LINK"] = 'LINK_TO_SECTION';
  31.  
  32. if($this->startResultCache(false))
  33. {
  34. if(!Loader::includeModule("iblock"))
  35. {
  36. $this->abortResultCache();
  37. ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
  38. return;
  39. }
  40. $arSelect = array(
  41. "ID",
  42. "IBLOCK_ID",
  43. "ACTIVE_FROM",
  44. "DETAIL_PAGE_URL",
  45. "NAME",
  46. "PROPERTY_".$arParams['PROPS_LINK']
  47. );
  48. $arFilter = array (
  49. "IBLOCK_ID"=> $arParams["IBLOCK_NEWS_ID"],
  50. "ACTIVE" => "Y",
  51. "CHECK_PERMISSIONS" => "Y",
  52. );
  53.  
  54. $arOrder= array();
  55.  
  56. $arResult=array(
  57. "NEWS"=>array(),
  58. );
  59. $rsItems = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
  60.  
  61. $arSectionIds=array();
  62.  
  63. while($arNews = $rsItems->GetNext())
  64. {
  65. foreach($arNews['PROPERTY_LINK_TO_SECTION_VALUE'] as $k=>$v){
  66. $arSectionIds[]= $v;
  67. }
  68.  
  69. $arResult["NEWS"][]=$arNews;
  70.  
  71. }
  72.  
  73. $arSectionIds = array_unique($arSectionIds);
  74.  
  75. $arSelect = array(
  76. "ID",
  77. "IBLOCK_ID",
  78. "NAME",
  79. "IBLOCK_SECTION_ID",
  80. "PROPERTY_PRICE",
  81. "PROPERTY_ARTNUMBER",
  82. "PROPERTY_MATERIAL",
  83. );
  84.  
  85. $arFilter = array (
  86. "IBLOCK_ID" => $arParams["IBLOCK_CATALOG_ID"],
  87. "ACTIVE" => "Y",
  88. "SECTION_ID" => $arSectionIds,
  89. "CHECK_PERMISSIONS" => "Y",
  90. );
  91.  
  92. $arOrder= array();
  93.  
  94. $arResult["CATALOG"] = array();
  95.  
  96. $rsCatalogItems = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
  97.  
  98. $arResult['ELEMENT_COUNT'] = $rsCatalogItems->SelectedRowsCount();
  99.  
  100. while($arCatalog = $rsCatalogItems->GetNext())
  101. {
  102. $arResult["CATALOG"][$arCatalog['IBLOCK_SECTION_ID']]['ITEMS'][]=$arCatalog;
  103. }
  104.  
  105. }
  106.  
  107. $arFilter = array(
  108. 'IBLOCK_ID'=>$arParams["IBLOCK_CATALOG_ID"],
  109. 'GLOBAL_ACTIVE'=>'Y',
  110. 'ID'=>$arSectionIds);
  111.  
  112. $db_list = CIBlockSection::GetList($arOrder, $arFilter, false);
  113.  
  114. while($ar_result = $db_list->GetNext())
  115. {
  116. $arResult["CATALOG"][$ar_result['ID']]['NAME']=$ar_result['NAME'];
  117. }
  118.  
  119. $this->setResultCacheKeys(array(
  120. "ELEMENT_COUNT",
  121. ));
  122.  
  123. $this->includeComponentTemplate();
  124. }
  125.  
  126. if($arResult["ELEMENT_COUNT"])
  127. {
  128. $APPLICATION->SetTitle('В каталоге товаров представлено товаров: '.$arResult["ELEMENT_COUNT"]);
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement