%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/calendar.view.slider/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/calendar.view.slider/templates/.default/template.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? use \Bitrix\Main\Localization\Loc; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/tools/clock.php"); global $APPLICATION, $USER_FIELD_MANAGER; $userId = CCalendar::GetCurUserId(); $id = $arParams['id']; $event = $arParams['event']; $fromTs = CCalendar::Timestamp($event['DATE_FROM']); $toTs = CCalendar::Timestamp($event['DATE_TO']); $skipTime = $event['DT_SKIP_TIME'] == "Y"; $arCreator = false; if (empty($event)) { ?> <div class="ui-alert ui-alert-danger ui-alert-icon-danger ui-alert-text-center"> <span class="ui-alert-message"><?= Loc::getMessage('EC_VIEW_SLIDER_EVENT_NOT_FOUND')?></span> </div> <? return; } if ($skipTime) { $toTs += CCalendar::DAY_LENGTH; } else { $fromTs -= $event['~USER_OFFSET_FROM']; $toTs -= $event['~USER_OFFSET_TO']; } // Timezone Hint $timezoneHint = ''; if ( !$skipTime && (intVal($event['~USER_OFFSET_FROM']) !== 0 || intVal($event['~USER_OFFSET_TO']) !== 0 || $event['TZ_FROM'] != $event['TZ_TO'] || $event['TZ_FROM'] !== CCalendar::GetUserTimezoneName($userId)) ) { if ($event['TZ_FROM'] == $event['TZ_TO']) { $timezoneHint = CCalendar::GetFromToHtml(CCalendar::Timestamp($event['DATE_FROM']), CCalendar::Timestamp($event['DATE_TO']), $skipTime, $event['DT_LENGTH']); if ($event['TZ_FROM']) $timezoneHint .= ' ('.$event['TZ_FROM'].')'; } else { $timezoneHint = GetMessage('EC_VIEW_DATE_FROM_TO', array('#DATE_FROM#' => $event['DATE_FROM'].' ('.$event['TZ_FROM'].')', '#DATE_TO#' => $event['DATE_TO'].' ('.$event['TZ_TO'].')')); } } // From - to html $fromToHtml = CCalendar::GetFromToHtml($fromTs, $toTs, $skipTime, $event['DT_LENGTH']); $location = CCalendar::GetTextLocation($event['LOCATION']); $UF = CCalendarEvent::GetEventUserFields($event); if (!is_null($event['UF_CRM_CAL_EVENT'])) { $event['UF_CRM_CAL_EVENT'] = $UF['UF_CRM_CAL_EVENT']; if (empty($event['UF_CRM_CAL_EVENT']['VALUE'])) $event['UF_CRM_CAL_EVENT'] = false; } if (!is_null($event['UF_WEBDAV_CAL_EVENT'])) { $event['UF_WEBDAV_CAL_EVENT'] = $UF['UF_WEBDAV_CAL_EVENT']; if(empty($event['UF_WEBDAV_CAL_EVENT']['VALUE'])) $event['UF_WEBDAV_CAL_EVENT'] = false; } $avatarSize = 34; $event['REMIND'] = CCalendarEvent::GetTextReminders($event['REMIND']); $curUserStatus = ''; $userId = CCalendar::GetCurUserId(); $viewComments = CCalendar::IsPersonal($event['CAL_TYPE'], $event['OWNER_ID'], $userId) || CCalendarSect::CanDo('calendar_view_full', $event['SECT_ID'], $userId); if ($event['EVENT_TYPE'] === '#resourcebooking#') { $viewComments = false; } $codes = array(); if ($event['IS_MEETING']) { $attRes = CCalendarEvent::GetAttendees(array($event['PARENT_ID'])); if ($attRes && isset($attRes[$event['PARENT_ID']])) { $event['~ATTENDEES'] = $attRes[$event['PARENT_ID']]; } $attendees = array( 'y' => array(), 'n' => array(), 'q' => array(), 'i' => array() ); if (is_array($event['~ATTENDEES'])) { foreach ($event['~ATTENDEES'] as $att) { $codes[] = 'U'.intVal($att['USER_ID']); if ($userId == $att["USER_ID"]) { $curUserStatus = $att['STATUS']; $viewComments = true; } $att['AVATAR_SRC'] = CCalendar::GetUserAvatarSrc($att); $att['URL'] = CCalendar::GetUserUrl($att["USER_ID"], $arParams["PATH_TO_USER"]); $status = (strtolower($att['STATUS']) == 'h' || $att['STATUS'] == '') ? 'y' : $att['STATUS']; $attendees[strtolower($status)][] = $att; if ($att['STATUS'] == 'H') { $arHost = $att; $arHost['ID'] = $att['USER_ID']; } } } } if ($event['CAL_TYPE'] == 'user') { $codes[] = 'U'.intVal($event['OWNER_ID']); } else { $codes[] = 'U'.intVal($event['CREATED_BY']); } $codes = array_unique($codes); if (!isset($arHost) || !$arHost) { $arHost = CCalendar::GetUser($event['CREATED_BY'], true); $arHost['DISPLAY_NAME'] = CCalendar::GetUserName($arHost); $arHost['AVATAR_SRC'] = CCalendar::GetUserAvatarSrc($arHost); $arHost['URL'] = CCalendar::GetUserUrl($arHost["ID"], $arParams["PATH_TO_USER"]); } if ($event['IS_MEETING'] && $event['MEETING']['MEETING_CREATOR'] && $event['MEETING']['MEETING_CREATOR'] !== $event['MEETING_HOST']) { $arCreator = CCalendar::GetUser($event['MEETING']['MEETING_CREATOR'], true); $arCreator['DISPLAY_NAME'] = CCalendar::GetUserName($arCreator); $arCreator['URL'] = CCalendar::GetUserUrl($arCreator["ID"], $arCreator["PATH_TO_USER"]); } $arParams['event'] = $event; $arParams['UF'] = $UF; ?> <div class="calendar-slider-calendar-wrap"> <div class="calendar-slider-header"> <div class="calendar-head-area"> <div class="calendar-head-area-inner"> <div class="calendar-head-area-title"> <span id="<?= $id?>_title" class="calendar-head-area-title-name"><?= $event['NAME']?></span> <span id="<?= $id?>_copy_url_btn" class="calendar-page-link-btn" title="<?= Loc::getMessage('EC_VIEW_SLIDER_COPY_LINK')?>"></span> </div> </div> </div> </div> <div class="calendar-slider-workarea"> <div class="calendar-slider-sidebar"> <div id="<?= $id?>_time_wrap" class="calendar-slider-sidebar-head" <?= $timezoneHint ? 'title="'.$timezoneHint.'"' : ''?>> <div id="<?= $id?>_time_inner_wrap" class="calendar-slider-sidebar-head-title"><?= $fromToHtml?> <?if ($timezoneHint):?> <div class="calendar-slider-sidebar-head-timezone" title="<?= $timezoneHint?>"> <div class="calendar-slider-sidebar-head-timezone-icon"></div> </div> <?endif;?> </div> </div> <div id="<?= $id?>_sidebar_inner" class="calendar-slider-sidebar-inner"> <div class="calendar-slider-sidebar-layout calendar-slider-sidebar-user"> <div class="calendar-slider-sidebar-layout-top calendar-slider-sidebar-user-top calendar-slider-sidebar-border-bottom"> <div class="calendar-slider-sidebar-left-side"> <div class="calendar-slider-sidebar-name"> <?if ($event['IS_MEETING']):?> <?= Loc::getMessage('EC_VIEW_ATTENDEES_TITLE')?> <?else:?> <?= Loc::getMessage('EC_VIEW_HOST')?> <?endif;?> </div> </div> <div class="calendar-slider-sidebar-right-side" id="<?= $id?>_add_link" style="display: none;"> <div class="calendar-slider-sidebar-property calendar-slider-sidebar-link-user"> <?= Loc::getMessage('EC_VIEW_ATTENDEES_ADD')?> </div> </div> </div> <div class="calendar-slider-sidebar-layout-main"> <div class="calendar-slider-sidebar-user-block"> <?if ($event['IS_MEETING']):?> <div class="calendar-slider-sidebar-user-container"> <div class="calendar-slider-sidebar-user-block-avatar"> <a href="<?= $arHost['URL']?>"> <div class="calendar-slider-sidebar-user-icon-top"></div> <div class="calendar-slider-sidebar-user-block-item"><img src="<?= $arHost['AVATAR_SRC']?>" width="<?= $avatarSize?>" height="<?= $avatarSize?>" /></div> <div class="calendar-slider-sidebar-user-icon-bottom"></div> </a> </div> </div> <?for($i = 0, $l = count($attendees['y']); $i < $l; $i++):?> <? $att = $attendees['y'][$i]; if ($i > 10) break; if ($arHost['ID'] == $att['USER_ID']) continue; ?> <div class="calendar-slider-sidebar-user-container"> <div class="calendar-slider-sidebar-user-block-avatar"> <a href="<?= $att['URL']?>"> <div class="calendar-slider-sidebar-user-block-item"> <img src="<?= $att['AVATAR_SRC']?>" width="<?= $avatarSize?>" height="<?= $avatarSize?>" /> </div> <div class="calendar-slider-sidebar-user-icon-bottom"></div> </a> </div> </div> <?endfor;?> <? if ($arCreator):?> <div class="calendar-slider-sidebar-row calendar-slider-sidebar-border-bottom"> <div class="calendar-slider-sidebar-string-name"><?= Loc::getMessage('EC_VIEW_CREATED_BY')?>:</div> <div class="calendar-slider-sidebar-string-value"> <a href="<?= $arCreator['URL']?>" class="calendar-slider-sidebar-user-info-name"><?= htmlspecialcharsbx($arCreator['DISPLAY_NAME'])?></a> </div> </div> <? endif;?> <?else:?> <div class="calendar-slider-sidebar-user-container calendar-slider-sidebar-user-card"> <div class="calendar-slider-sidebar-user-block-avatar"> <a href="<?= $arHost['URL']?>"> <div class="calendar-slider-sidebar-user-block-item"><img src="<?= $arHost['AVATAR_SRC']?>" width="<?= $avatarSize?>" height="<?= $avatarSize?>" /></div> </a> <div class="calendar-slider-sidebar-user-icon-bottom"></div> </div> <div class="calendar-slider-sidebar-user-info"> <a href="<?= $arHost['URL']?>" class="calendar-slider-sidebar-user-info-name"><?= htmlspecialcharsbx($arHost['DISPLAY_NAME'])?></a> <?if ($arHost['WORK_POSITION']):?> <div class="calendar-slider-sidebar-user-info-status"><?= htmlspecialcharsbx($arHost['WORK_POSITION'])?></div> <?endif;?> </div> </div> <?endif;?> </div> <?if ($event['IS_MEETING']):?> <div class="calendar-slider-sidebar-user-social calendar-slider-sidebar-border-bottom"> <div class="calendar-slider-sidebar-user-social-left"> <div id="<?= $id?>_attendees_y" class="calendar-slider-sidebar-user-social-item"> <span class="calendar-slider-sidebar-user-social-number"> <?= count($attendees['y'])?> </span> <span class="calendar-slider-sidebar-user-social-name calendar-slider-sidebar-color-grey-opacity"> <?= Loc::getMessage('EC_VIEW_STATUS_TITLE_Y')?> </span> </div> <div id="<?= $id?>_attendees_q" class="calendar-slider-sidebar-user-social-item"> <span class="calendar-slider-sidebar-user-social-number"> <?= count($attendees['q'])?> </span> <span class="calendar-slider-sidebar-user-social-name calendar-slider-sidebar-color-grey-opacity"> <?= Loc::getMessage('EC_VIEW_STATUS_TITLE_Q')?> </span> </div> </div> <div class="calendar-slider-sidebar-user-social-right"> <div id="<?= $id?>_attendees_i" class="calendar-slider-sidebar-user-social-item" style="visibility: hidden;"> <span class="calendar-slider-sidebar-user-social-number"> <?= count($attendees['i'])?> </span> <span class="calendar-slider-sidebar-user-social-name calendar-slider-sidebar-color-grey-opacity"> <?= Loc::getMessage('EC_VIEW_STATUS_TITLE_I')?> </span> </div> <div id="<?= $id?>_attendees_n" class="calendar-slider-sidebar-user-social-item"> <span class="calendar-slider-sidebar-user-social-number"> <?= count($attendees['n'])?> </span> <span class="calendar-slider-sidebar-user-social-name calendar-slider-sidebar-color-grey-opacity"> <?= Loc::getMessage('EC_VIEW_STATUS_TITLE_N')?> </span> </div> </div> </div> <?endif; /*if ($event['IS_MEETING'])*/?> </div> </div> <?if (is_array($event['REMIND']) && count($event['REMIND']) > 0):?> <div class="calendar-slider-sidebar-layout-main calendar-slider-sidebar-border-bottom calendar-slider-sidebar-remind"> <div class="calendar-slider-sidebar-row"> <div class="calendar-slider-sidebar-string-name"><?= Loc::getMessage('EC_VIEW_REMINDERS')?>:</div> <span class="calendar-slider-sidebar-remind-link calendar-slider-sidebar-string-value" id="<?= $id?>_add_reminder_link" style="display: none;"> <span class="calendar-slider-sidebar-remind-link-name"><?= Loc::getMessage('EC_VIEW_REMINDER_ADD')?></span> </span> </div> <?foreach($event['REMIND'] as $remind):?> <div class="calendar-slider-sidebar-remind-warning"> <span class="calendar-slider-sidebar-remind-warning-name"><?= $remind['text']?></span> <div class="calendar-close-button"></div> </div> <?endforeach;?> </div> <?endif;?> <?if ($event['RRULE']):?> <div class="calendar-slider-sidebar-row calendar-slider-sidebar-border-bottom"> <div class="calendar-slider-sidebar-string-name"><?=GetMessage('EC_T_REPEAT')?>:</div> <div class="calendar-slider-sidebar-string-value"><?= CCalendarEvent::GetRRULEDescription($event, true)?></div> </div> <?endif;?> </div> <div class="calendar-slider-sidebar-copy" style="display: none;"> <span class="calendar-slider-sidebar-copy-link"><?= Loc::getMessage('EC_VIEW_SLIDER_COPY_LINK')?></span> </div> </div> <div class="calendar-slider-content"> <div class="calendar-slider-detail calendar-slider-detail-panel"> <div class="calendar-slider-detail-info"> <div class="calendar-slider-detail-header"> <?if ($event['IMPORTANCE'] == 'high'):?> <div id="calendar-slider-detail-important-button" class="calendar-slider-info-panel-important mutable"> <span class="if-not-no"><?= Loc::getMessage('EC_VIEW_SLIDER_IMPORTANT_EVENT')?></span> </div> <?endif;?> <div class="calendar-slider-detail-subtitle-status" style="visibility: hidden"> #calendar-slider-detail-subtitle-status# <span class="calendar-slider-detail-status-below-name"></span> </div> </div> <div class="calendar-slider-detail-content"> <?if (!empty($event['~DESCRIPTION'])):?> <div id="calendar-slider-detail-description" class="calendar-slider-detail-description"> <?= htmlspecialcharsback($event['~DESCRIPTION'])?> </div> <?endif;?> <?if ($event['UF_WEBDAV_CAL_EVENT']):?> <div class="calendar-slider-detail-files" id="<?=$id?>_<?=$event['ID']?>_files_wrap"> <?$APPLICATION->IncludeComponent( "bitrix:system.field.view", $event['UF_WEBDAV_CAL_EVENT']["USER_TYPE"]["USER_TYPE_ID"], array("arUserField" => $event['UF_WEBDAV_CAL_EVENT']), null, array("HIDE_ICONS"=>"Y") );?> </div> <?endif;?> <!--region planner--> <div class="calendar-slider-detail-timeline hidden" id="<?=$id?>_view_planner_wrap"> <? if (count($codes) > 0):?> <div class="calendar-view-planner-wrap"> <? $fromTs = CCalendar::Timestamp($event['DATE_FROM']); $toTs = CCalendar::Timestamp($event['DATE_TO']); if ($event['DT_SKIP_TIME'] !== "Y") { $fromTs -= $event['~USER_OFFSET_FROM']; $toTs -= $event['~USER_OFFSET_TO']; } $event['DATE_FROM'] = CCalendar::Date($fromTs, $event['DT_SKIP_TIME'] != 'Y'); $event['DATE_TO'] = CCalendar::Date($toTs, $event['DT_SKIP_TIME'] != 'Y'); if ($event['DT_SKIP_TIME'] == 'Y') { $loadedFrom = CCalendar::Date($fromTs - CCalendar::DAY_LENGTH * 5, false); $loadedTo = CCalendar::Date($toTs + CCalendar::DAY_LENGTH * 10, false); } else { $loadedFrom = CCalendar::Date($fromTs - CCalendar::DAY_LENGTH * 2, false); $loadedTo = CCalendar::Date($toTs + CCalendar::DAY_LENGTH * 5, false); } $updatePlannerParams = CCalendarPlanner::PrepareData(array( 'user_id' => CCalendar::GetCurUserId(), 'host_id' => $arHost['ID'], 'entries' => false, 'codes' => $codes, 'date_from' => $loadedFrom, 'date_to' => $loadedTo, 'location' => $event['LOCATION'], 'roomEventId' => 0 )); CCalendarPlanner::Init( array( 'id' => $id.'_view_slider_planner', 'readonly' => true, 'useSolidBlueSelector' => true, 'scaleLimitOffsetLeft' => 2, 'scaleLimitOffsetRight' => 2, 'maxTimelineSize' => 30 ), array( 'show' => true, 'config' => array( 'scaleDateFrom' => $loadedFrom, 'scaleDateTo' => $loadedTo, 'changeFromFullDay' => array( 'scaleType' => '1hour', 'timelineCellWidth' => 40, ), 'entriesListWidth' => 200, 'width' => 1300 ), 'focusSelector' => true, 'selector' => array( 'focus' => true, 'from' => $event['DATE_FROM'], 'to' => $event['DATE_TO'], 'fullDay' => $event['DT_SKIP_TIME'] == 'Y', 'RRULE' => false, 'animation' => false, 'updateScaleLimits' => true ), 'loadedDataFrom' => $loadedFrom, 'loadedDataTo' => $loadedTo, 'data' => array( 'entries' => $updatePlannerParams['entries'], 'accessibility' => $updatePlannerParams['accessibility'] ) ) );?> </div> <? endif; // (is_array($event['~ATTENDEES']) && count($event['~ATTENDEES']) > 0):?> </div> <!--endregion--> <div class="calendar-slider-detail-option"> <?if ($event['UF_CRM_CAL_EVENT']):?> <div class="calendar-slider-detail-option-block"> <div class="calendar-slider-detail-option-name"><?= Loc::getMessage('EC_CRM_TITLE')?>:</div> <div class="calendar-slider-detail-option-value calendar-slider-detail-option-crm"> <?$APPLICATION->IncludeComponent( "bitrix:system.field.view", $event['UF_CRM_CAL_EVENT']["USER_TYPE"]["USER_TYPE_ID"], array("arUserField" => $event['UF_CRM_CAL_EVENT']), null, array("HIDE_ICONS"=>"Y") );?> </div> </div> <?endif;?> <?if ($event['ACCESSIBILITY'] != '' && $arParams['bIntranet']):?> <div class="calendar-slider-detail-option-block"> <div class="calendar-slider-detail-option-name"><?= Loc::getMessage('EC_ACCESSIBILITY_TITLE')?>:</div> <div class="calendar-slider-detail-option-value"><?= Loc::getMessage("EC_ACCESSIBILITY_".strtoupper($event['ACCESSIBILITY']))?></div> </div> <?endif;?> <?if ($arParams['sectionName'] != ''):?> <div class="calendar-slider-detail-option-block"> <div class="calendar-slider-detail-option-name"><?= Loc::getMessage('EC_VIEW_SECTION')?>:</div> <div class="calendar-slider-detail-option-value"><?= $arParams['sectionName']?></div> </div> <?endif;?> <?if ($event['PRIVATE_EVENT'] && $arParams['bIntranet']):?> <div class="calendar-slider-detail-option-block"> <div class="calendar-slider-detail-option-name"><?=Loc::getMessage('EC_EDDIV_SPECIAL_NOTES')?>:</div> <div class="calendar-slider-detail-option-value"><?=Loc::getMessage('EC_PRIVATE_EVENT')?></div> </div> <?endif;?> </div> <?if (!empty($location)):?> <div class="calendar-slider-detail-place"> <div class="calendar-slider-detail-place-title"><?= Loc::getMessage('EC_VIEW_SLIDER_LOCATION')?></div> <div class="calendar-slider-detail-place-name"><?= htmlspecialcharsbx($location)?></div> </div> <?endif;?> </div> <div class="calendar-slider-detail-buttons"> <div class="calendar-slider-view-buttonset calendar-slider-view-button-more-right"> <div id="<?=$id?>_buttonset" class="calendar-slider-view-buttonset-inner"> <input type="hidden" id="<?=$id?>_current_status" value="<?= $curUserStatus?>"/> <span id="<?=$id?>_status_buttonset"></span> <button id="<?=$id?>_but_edit" class="ui-btn ui-btn-light-border"><?= Loc::getMessage('EC_VIEW_SLIDER_EDIT')?></button> <button id="<?=$id?>_but_del" class="ui-btn ui-btn-link"><?= Loc::getMessage('EC_VIEW_SLIDER_DEL')?></button> </div> </div> </div> </div> <?if ($viewComments): ?> <div class="calendar-slider-comments"> <div class="calendar-slider-comments-title"><?= Loc::getMessage('EC_VIEW_SLIDER_COMMENTS')?></div> <div class="calendar-slider-comments-main" id="<?=$id?>comments-cont" style="opacity: 1;"> <? if ($userId == $event['CREATED_BY'] && ($event['PARENT_ID'] == $event['ID'] || !$event['PARENT_ID'])) $permission = "Y"; else $permission = 'M'; $set = CCalendar::GetSettings(); $eventCommentId = $event['PARENT_ID'] ? $event['PARENT_ID'] : $event['ID']; // A < E < I < M < Q < U < Y // A - NO ACCESS, E - READ, I - ANSWER // M - NEW TOPIC // Q - MODERATE, U - EDIT, Y - FULL_ACCESS if ($eventCommentId > 0) { $APPLICATION->IncludeComponent("bitrix:forum.comments", "bitrix24", array( "FORUM_ID" => $set['forum_id'], "ENTITY_TYPE" => "EV", // "ENTITY_ID" => $eventCommentId, //Event id "ENTITY_XML_ID" => CCalendarEvent::GetEventCommentXmlId($event), // "PERMISSION" => $permission, // "URL_TEMPLATES_PROFILE_VIEW" => $set['path_to_user'], "SHOW_RATING" => "Y", "SHOW_LINK_TO_MESSAGE" => "N", "BIND_VIEWER" => "Y" ), false, array('HIDE_ICONS' => 'Y') ); } ?> </div> </div> <?endif;?> </div> </div> </div>