Ejemplo n.º 1
0
 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($o, $b, 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 (strlen($arProp["CODE"]) > 0) {
                             $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;
 }