component.php
2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?
use \Cpeople\Classes\Block;
$arParams['CODE'] = !empty($_REQUEST['CODE']) ? $_REQUEST['CODE'] : false;
$arParams['TEMPLATE'] = $arParams['CODE']
? 'detail'
: ($arParams['IS_AJAX'] ? 'ajax' : false);
if($arParams['TEMPLATE'] !== 'detail') {
$arParams['PAGE_SIZE'] = 3;
$arParams['PAGE_NUM'] = empty($_REQUEST['page']) ? 1 : (int)$_REQUEST['page'];
if ($arParams['IS_AJAX']) {
header('Content-Type: application/json');
}
}
try {
if ($this->StartResultCache(COMPONENTS_CACHE_TTL))
{
if ($arParams['TEMPLATE'] == 'detail') {
$arResult['ITEM'] = Block\Getter::instance()
->setFilter(array('IBLOCK_ID' => IBLOCK_EMPLOYEES, 'ACTIVE' => 'Y', '!DETAIL_TEXT' => false))
->setClassName('\SH\Entities\People')
->setNavStartParams(array('nTopCount' => 1))
->getByCode($arParams['CODE']);
if (!$arResult['ITEM']) throw new Exception('detail not found');
$arResult['NAME'] = $arResult['ITEM']->NAME;
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues(IBLOCK_EMPLOYEES, $arResult['ITEM']->ID);
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
$arResult['TITLE'] = $arResult['IPROPERTY_VALUES']['ELEMENT_META_TITLE'];
$arResult['KEYWORDS'] = $arResult['IPROPERTY_VALUES']['ELEMENT_META_KEYWORDS'];
$arResult['DESCRIPTION'] = $arResult['IPROPERTY_VALUES']['ELEMENT_META_DESCRIPTION'];
} else {
$getter = Block\Getter::instance()
->setFilter(array('IBLOCK_ID' => IBLOCK_EMPLOYEES, 'ACTIVE' => 'Y'))
->setOrder(array('SORT' => 'ASC', 'NAME' => 'ASC'))
->setClassName('\SH\Entities\People')
->setNavStartParams(array('nPageSize' => $arParams['PAGE_SIZE'], 'iNumPage' => $arParams['PAGE_NUM']));
$arResult['ITEMS'] = $getter->get();
$arResult['COUNT'] = $getter->getFoundRows();
$arResult['REMAIN'] = $arResult['COUNT'] - $arParams['PAGE_SIZE'] * $arParams['PAGE_NUM'];
}
$this->SetResultCacheKeys(array('NAME', 'TITLE', 'KEYWORDS', 'DESCRIPTION'));
$this->IncludeComponentTemplate($arParams['TEMPLATE']);
}
} catch(Exception $e) {
define('ERROR_404', true);
$this->AbortResultCache();
return;
}
if($arResult['NAME']) $APPLICATION->AddChainItem($arResult['NAME']);
if($arResult['NAME']) $APPLICATION->SetTitle($arResult['NAME']);
if($arResult['TITLE']) $APPLICATION->SetPageProperty('title', $arResult['TITLE']);
if($arResult['KEYWORDS']) $APPLICATION->SetPageProperty("keywords", $arResult['KEYWORDS']);
if($arResult['DESCRIPTION']) $APPLICATION->SetPageProperty("description", $arResult['DESCRIPTION']);
if(!$arParams['TEMPLATE']) {
$APPLICATION->SetPageProperty('CONTAINER_EXTRA_CLASS', '_gray');
}