- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
- Класс: CEventCalendar
- Вызов: CEventCalendar::GetGuestsAccessability
function GetGuestsAccessability($Params)
{
$iblockId = $this->userIblockId;
$curEventId = $Params['curEventId'] > 0 ? $Params['curEventId'] : false;
$arSelect = array("ID", "NAME", "IBLOCK_ID", "ACTIVE_FROM", "ACTIVE_TO", "CREATED_BY", "PROPERTY_*");
$arFilter = array (
"IBLOCK_ID" => $iblockId,
"ACTIVE" => "Y",
"CHECK_PERMISSIONS" => 'N',
"CREATED_BY" => $Params['users'],
"PROPERTY_PRIVATE" => false,
"!=PROPERTY_CONFIRMED" => $this->GetConfirmedID($iblockId, "N"),
">=DATE_ACTIVE_TO" => $Params['from'],
"<=DATE_ACTIVE_FROM" => $Params['to']
);
$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
if ($curEventId > 0 && isset($props['PARENT']) && $props['PARENT']['VALUE'] == $curEventId)
continue;
$uid = $arItem['CREATED_BY'];
if (!isset($arResult[$uid]))
$arResult[$uid] = array();
$arItem["ACCESSIBILITY"] = ($props['ACCESSIBILITY']['VALUE']) ? $props['ACCESSIBILITY']['VALUE'] : 'busy';
$arItem["IMPORTANCE"] = ($props['IMPORTANCE']['VALUE']) ? $props['IMPORTANCE']['VALUE'] : 'normal';
$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')? mb_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[$uid], array(
'arItem' => $arItem,
'perType' => $per_type,
'count' => $count,
'length' => $length,
'additional' => $additional,
'fromLimit' => $Params['from'],
'toLimit' => $Params['to']
));
}
else
{
$this->HandleElement($arResult[$uid], $arItem);
}
}
if (count($arResult) > 0)
CEventCalendar::DisplayJSGuestsAccessability($arResult);
}