• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/utils.php
  • Класс: CIntranetUtils
  • Вызов: CIntranetUtils::IsUserHonoured
static function IsUserHonoured($USER_ID)
{
	global $CACHE_HONOUR, $CACHE_MANAGER;

	if (!is_array($CACHE_HONOUR))
	{
		$cache_ttl = (24-date('G')) * 3600;
		$cache_dir = '/'.SITE_ID.'/intranet/honour';

		$obCache = new CPHPCache();
		if ($obCache->InitCache($cache_ttl, 'intranet_honour', $cache_dir))
		{
			$CACHE_HONOUR = $obCache->GetVars();
		}
		else
		{
			$CACHE_HONOUR = array();
			$blockId = intval(COption::GetOptionInt('intranet', 'iblock_honour'));
			$arFilter = array(
				"IBLOCK_ID" => $blockId,
				"ACTIVE_DATE" => 'Y',
			);

			if ($arFilter['IBLOCK_ID'] <= 0)
			{
				return false;
			}

			$dbRes = CIBlockElement::GetList(array('ID' => 'ASC'), $arFilter, array('ID', 'IBLOCK_ID', 'PROPERTY_USER'));
			while ($arRes = $dbRes->Fetch())
			{
				$CACHE_HONOUR[] = $arRes;
			}

			$obCache->StartDataCache();
			$CACHE_MANAGER->StartTagCache($cache_dir);
			$CACHE_MANAGER->RegisterTag('iblock_id_' . $blockId);
			$CACHE_MANAGER->EndTagCache();
			$obCache->EndDataCache($CACHE_HONOUR);
		}
	}

	foreach ($CACHE_HONOUR as $arRes)
	{
		if (isset($arRes['PROPERTY_USER_VALUE']) && $arRes['PROPERTY_USER_VALUE'] == $USER_ID)
			return true;
	}

	return false;
}