• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
  • Класс: CECEvent
  • Вызов: CECEvent::GetGuests
static function GetGuests($iblockId, $id, $arParams = array())
{
	$arResult = array();
	$bOnlyOwner = false;

	if ($arParams && $arParams['bCheckOwner'] && ($arParams['ownerType'] == 'USER' || !$arParams['bHostIsAbsent']))
	{
		$rsHost = CIBlockElement::GetList(array(), array("=ID" => $id,), false, false, array("CREATED_BY"));
		if($arHost = $rsHost->Fetch())
		{
			$rsHostUser = CUser::GetByID($arHost["CREATED_BY"]);
			if($arHostUser = $rsHostUser->Fetch())
			{
				$arHostUser["FULL_NAME"] = CEventCalendar::GetFullUserName($arHostUser);
				$arResult[$arHost["CREATED_BY"]] = array(
					'CREATED_BY' => $arHostUser,
					'PROPERTY_VALUES' => array('CONFIRMED' => 'Y'),
					'IS_HOST' => true
				);
				$bOnlyOwner = true;
			}
		}
	}

	if($ar = CEventCalendar::GetLinkIBlock($iblockId))
	{
		$rsGuests = CIBlockElement::GetList(array(), array(
			"IBLOCK_ID" => $iblockId,
			"PROPERTY_".$ar["ID"] => $id,
		), false, false, array(
			"ID",
			"IBLOCK_ID",
			"CREATED_BY",
			"NAME",
			"ACTIVE_FROM",
			"ACTIVE_TO",
			"DETAIL_TEXT",
			"DETAIL_TEXT_TYPE",
			"IBLOCK_SECTION_ID"
		));

		while($arGuest = $rsGuests->Fetch())
		{
			$guest_id = intval($arGuest["CREATED_BY"]);
			if($guest_id > 0)
			{
				$rsUser = CUser::GetList('', '', array(
					"ID_EQUAL_EXACT" => $guest_id
				));
				$arUser = $rsUser->Fetch();
				if($arUser)
				{
					$arUser["FULL_NAME"] = CEventCalendar::GetFullUserName($arUser);
					$arGuest["CREATED_BY"] = $arUser;

					$arGuest["PROPERTY_VALUES"] = array();
					$rsProp = CIBlockElement::GetProperty($iblockId, $arGuest["ID"], array("EMPTY"=>"N"));
					while($arProp = $rsProp->Fetch())
					{
						if($arProp["CODE"] <> '')
							$prop_id = $arProp["CODE"];
						else
							$prop_id = $arProp["ID"];

						if($arProp["PROPERTY_TYPE"] == "L")
							$value = $arProp["VALUE_XML_ID"];
						else
							$value = $arProp["VALUE"];

						if($arProp["MULTIPLE"] == "Y")
							$arGuest["PROPERTY_VALUES"][$prop_id][$arProp["PROPERTY_VALUE_ID"]] = $value;
						else
							$arGuest["PROPERTY_VALUES"][$prop_id] = $value;
					}
					$arResult[$guest_id] = $arGuest;
					$bOnlyOwner = false;
				}
			}
		}
	}

	return $bOnlyOwner && $arParams['DontReturnOnlyOwner'] ? array() : $arResult;
}