コード例 #1
0
 function GetMRAccessability($Params)
 {
     global $USER;
     if ($this->RMiblockId > 0 && $this->allowResMeeting) {
         $curEventId = $Params['curEventId'] > 0 ? $Params['curEventId'] : false;
         $arSelect = array("ID", "NAME", "IBLOCK_ID", "ACTIVE_FROM", "ACTIVE_TO", "PROPERTY_*");
         $arFilter = array("IBLOCK_ID" => $this->RMiblockId, "IBLOCK_SECTION_ID" => $Params['id'], "SECTION_ID" => array($Params['id']), "INCLUDE_SUBSECTIONS" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => 'N', ">=DATE_ACTIVE_TO" => $Params['from'], "<=DATE_ACTIVE_FROM" => $Params['to']);
         if (IntVal($curEventId) > 0) {
             $arFilter["!ID"] = IntVal($curEventId);
         }
         $arSort = array('ACTIVE_FROM' => 'ASC');
         $rsElement = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
         $arResult = array();
         while ($obElement = $rsElement->GetNextElement()) {
             $arItem = $obElement->GetFields();
             //if ($curEventId == $arItem['ID'])
             //continue;
             $props = $obElement->GetProperties();
             // Get properties
             $arItem["DISPLAY_ACTIVE_FROM"] = CIBlockFormatProperties::DateFormat(getDateFormat(true), MakeTimeStamp($arItem["ACTIVE_FROM"]));
             $arItem["DISPLAY_ACTIVE_TO"] = CIBlockFormatProperties::DateFormat(getDateFormat(true), MakeTimeStamp($arItem["ACTIVE_TO"]));
             $per_type = isset($props['PERIOD_TYPE']['VALUE']) && $props['PERIOD_TYPE']['VALUE'] != 'NONE' ? strtoupper($props['PERIOD_TYPE']['VALUE']) : false;
             if ($per_type) {
                 $count = isset($props['PERIOD_COUNT']['VALUE']) ? intval($props['PERIOD_COUNT']['VALUE']) : '';
                 $length = isset($props['EVENT_LENGTH']['VALUE']) ? intval($props['EVENT_LENGTH']['VALUE']) : '';
                 $additional = isset($props['PERIOD_ADDITIONAL']['VALUE']) ? $props['PERIOD_ADDITIONAL']['VALUE'] : '';
                 $this->DisplayPeriodicEvent($arResult, array('arItem' => $arItem, 'perType' => $per_type, 'count' => $count, 'length' => $length, 'additional' => $additional, 'fromLimit' => $Params['from'], 'toLimit' => $Params['to']));
             } else {
                 $this->HandleElement($arResult, $arItem);
             }
         }
     }
     if ($this->VMiblockId > 0 && $this->allowVideoMeeting) {
         $curEventId = $Params['curEventId'] > 0 ? $Params['curEventId'] : false;
         $arSelect = array("ID", "NAME", "IBLOCK_ID", "ACTIVE_FROM", "ACTIVE_TO", "PROPERTY_*");
         $arFilter = array("IBLOCK_ID" => $this->VMiblockId, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => 'N', ">=DATE_ACTIVE_TO" => $Params['from'], "<=DATE_ACTIVE_FROM" => $Params['to']);
         if (IntVal($curEventId) > 0) {
             $arFilter["!ID"] = IntVal($curEventId);
         }
         $arSort = array('ACTIVE_FROM' => 'ASC');
         $rsElement = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
         $arResult = array();
         $arRes = array();
         while ($obElement = $rsElement->GetNextElement()) {
             $arItem = $obElement->GetFields();
             //if ($curEventId == $arItem['ID'])
             //continue;
             $props = $obElement->GetProperties();
             // Get properties
             $arItem["DISPLAY_ACTIVE_FROM"] = CIBlockFormatProperties::DateFormat(getDateFormat(true), MakeTimeStamp($arItem["ACTIVE_FROM"]));
             $arItem["DISPLAY_ACTIVE_TO"] = CIBlockFormatProperties::DateFormat(getDateFormat(true), MakeTimeStamp($arItem["ACTIVE_TO"]));
             $per_type = isset($props['PERIOD_TYPE']['VALUE']) && $props['PERIOD_TYPE']['VALUE'] != 'NONE' ? strtoupper($props['PERIOD_TYPE']['VALUE']) : false;
             if ($per_type) {
                 $count = isset($props['PERIOD_COUNT']['VALUE']) ? intval($props['PERIOD_COUNT']['VALUE']) : '';
                 $length = isset($props['EVENT_LENGTH']['VALUE']) ? intval($props['EVENT_LENGTH']['VALUE']) : '';
                 $additional = isset($props['PERIOD_ADDITIONAL']['VALUE']) ? $props['PERIOD_ADDITIONAL']['VALUE'] : '';
                 $this->DisplayPeriodicEvent($arResult, array('arItem' => $arItem, 'perType' => $per_type, 'count' => $count, 'length' => $length, 'additional' => $additional, 'fromLimit' => $Params['from'], 'toLimit' => $Params['to']));
             } else {
                 $vParams = array("allowVideoMeeting" => true, "dateFrom" => $arItem["ACTIVE_FROM"], "dateTo" => $arItem["ACTIVE_TO"], "VMiblockId" => $arItem["IBLOCK_ID"], "regularity" => "NONE");
                 $check = false;
                 $check = CEventCalendar::CheckVR($vParams);
                 if ($check !== true && $check == "reserved") {
                     //todo make only factical reserved, not any time
                     $this->HandleElement($arResult, $arItem);
                 }
             }
         }
     }
     CEventCalendar::DisplayJSMRAccessability($Params['id'], $arResult);
 }