- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile/grats.php
- Класс: BitrixIntranetComponentUserProfileGrats
- Вызов: Grats::getStub
public function getStub()
{
global $USER;
$result = array(
'BADGES' => array()
);
$result['URL_ADD'] = CComponentEngine::makePathFromTemplate(
$this->getPathToPostEdit(),
array(
"user_id" => $USER->getId(),
"post_id" => 0
)
);
$result['URL_LIST'] = CComponentEngine::makePathFromTemplate(
$this->getPathToUserGrat(),
array(
"user_id" => $USER->getId()
)
);
$uri = new BitrixMainWebUri($result['URL_ADD']);
$result['URL_ADD'] = $uri->addParams(array("gratUserId" => $this->getProfileId()))->getUri();
$cache = new CPHPCache;
$cacheTime = 2592000;
$cacheId = "user_grat_enum";
$cachePath = "/user_grat_enum";
if ($cache->initCache($cacheTime, $cacheId, $cachePath))
{
$vars = $cache->getVars();
$badgesData = $vars['BADGES_DATA'];
}
else
{
$badgesData = array();
$cache->startDataCache($cacheTime, $cacheId, $cachePath);
$honourIblockId = $this->getGratitudesIblockId();
if ($honourIblockId > 0)
{
$res = CIBlockPropertyEnum::getList(
array("DEF"=>"DESC", "SORT"=>"ASC"),
array(
"IBLOCK_ID" => $honourIblockId,
"CODE" => "GRATITUDE"
)
);
while($enumFields = $res->fetch())
{
$badgesData[] = array(
'ID' => $enumFields['ID'],
'SORT' => $enumFields['SORT'],
'CODE' => $enumFields['XML_ID'],
'NAME' => $enumFields['VALUE'],
);
}
usort($badgesData, function($a, $b) {
if ($a['SORT'] == $b['SORT'])
{
return 0;
}
return ($a['SORT'] > $b['SORT']) ? +1 : -1;
});
}
$cache->endDataCache(array(
'BADGES_DATA' => $badgesData,
));
}
if (
is_array($badgesData)
&& !empty($badgesData)
)
{
$result['BADGES'] = $badgesData;
}
return $result;
}