require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Список компаний"); $category_ident = intval($_GET["category_ident"]); $city_ident = intval($_SESSION["city_id"]); $city_name = $_SESSION["city_name"]; $pagen = intval($_GET['PAGEN_1']); $pagen = $pagen > 0 ? $pagen : 1; $companies = array(); $companiesRes = null; $cache = new CPHPCache(); $cache_time = 60*60*0.30; $cache_id = 'company-list-'.$category_ident.'-'.$city_ident.'-'.$pagen; $cache_path = '/main_cache/'; if ($cache->InitCache($cache_time, $cache_id, $cache_path)) { $res = $cache->GetVars(); if (is_array($res["companies"]) && (count($res["companies"]) > 0)) { $companies = $res["companies"]; $companiesRes = $res["companiesRes"]; } } if (count($companies) == 0) { $filter = array(); $filter["IBLOCK_ID"] = 2; $filter["ACTIVE"] = "Y"; $filter["PROPERTY_CITY_IDENTS"] = MAUtils::get_city_idents_for_main(); if($city_ident > 0) { if(in_array($city_ident,$filter["PROPERTY_CITY_IDENTS"])) { $filter["PROPERTY_CITY_IDENTS"] = $city_ident; } } if($category_ident > 0) { $categoryRes = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 4,"PROPERTY_CAT_ID" => $category_ident),false,false,array("ID","IBLOCK_ID")); $category = $categoryRes->Fetch(); $category_ident = intval($category["ID"]) > 0 ? $category["ID"] : $category_ident; $categoryRes = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 4,"PROPERTY_PARENT_IDENT" => $category_ident),false,false,array("ID","IBLOCK_ID")); $categoryIds = array(); while($category = $categoryRes->Fetch()) { $categoryIds[] = $category["ID"]; } $categoryIds[] = $category_ident; $filter["PROPERTY_CATEGORY_IDENTS"] = $categoryIds; //$filter["PROPERTY_CATEGORY_IDENTS"] = count($categoryIds) > 1 ? $categoryIds : $category_ident; } $companiesRes = CIBlockElement::GetList( array("SORT"=>"ASC") ,$filter ,false ,array("nPageSize"=>30,"iNumPage" => $pagen) ,array( "ID" ,"IBLOCK_ID" ,"PROPERTY_PAGE_NAME" ,"PROPERTY_PAGE_VIP" ,"PROPERTY_PAGE_CLASSIC" ,"PROPERTY_PAGE_LOGO" ,"PROPERTY_PHOTO_COMPANY" ,"PROPERTY_CITY_IDENTS" ,"DATE_CREATE" ,"PROPERTY_PHOTO_APP" )); //echo $companiesRes->SelectedRowsCount(); while($item = $companiesRes->Fetch()) { $companies[] = $item; } $cache->StartDataCache($cache_time, $cache_id, $cache_path); $cache->EndDataCache(array("companies"=>$companies, "companiesRes" => $companiesRes)); } // --- шаблон заголовков и метаданных на категории $category_title = ''; if($category_ident > 0) { $categoryRes = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 4,"ID" => $category_ident),false,false,array("ID","IBLOCK_ID","NAME")); $category = $categoryRes->Fetch(); $category_name = $category["NAME"]; $APPLICATION->SetPageProperty("title", MAUtils::template_title($city_ident,$city_name,$category_name)); $APPLICATION->SetPageProperty("keywords", MAUtils::template_keywords($city_ident,$city_name,$category_name)); $APPLICATION->SetPageProperty("description", MAUtils::template_description($city_ident,$city_name,$category_name,$_SERVER["SERVER_NAME"])); $category_title = MAUtils::template_h1($city_ident,$city_name,$category_name); } // --- $seoRes = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 38,"PROPERTY_CATEGORY_IDENT" => $category_ident ? $category_ident : false,"PROPERTY_CITY_IDENT" => $city_ident ? $city_ident : false,"PROPERTY_PAGE" => 46), false, false, array("ID","IBLOCK_ID","PROPERTY_TITLE","PROPERTY_TITLE_H1","PROPERTY_KEYWORDS","PROPERTY_DESCRIPTION","PROPERTY_TEXT")); $seo = $seoRes->Fetch(); if($seo["PROPERTY_TITLE_VALUE"]) { $APPLICATION->SetPageProperty("title", $seo["PROPERTY_TITLE_VALUE"]); } if($seo["PROPERTY_KEYWORDS_VALUE"]) { $APPLICATION->SetPageProperty("keywords", $seo["PROPERTY_KEYWORDS_VALUE"]); } if($seo["PROPERTY_DESCRIPTION_VALUE"]) { $APPLICATION->SetPageProperty("description", $seo["PROPERTY_DESCRIPTION_VALUE"]); } if($seo["PROPERTY_TITLE_H1_VALUE"]) { $category_title = $seo["PROPERTY_TITLE_H1_VALUE"]; } ?> $APPLICATION->IncludeComponent( "bitrix:main.include", "", Array( "AREA_FILE_SHOW" => "sect", "AREA_FILE_SUFFIX" => "include/like_buttons", "AREA_FILE_RECURSIVE" => "Y", "EDIT_TEMPLATE" => "" ) );?>