%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/calendar/classes/general/ |
Current File : /home/bitrix/www/bitrix/modules/calendar/classes/general/calendar_sceleton.php |
<? use \Bitrix\Main\Localization\Loc; use \Bitrix\Main\Web\Json; class CCalendarSceleton { public static function InitJS($config = array(), $data = array(), $additionalParams = array()) { global $APPLICATION; CJSCore::Init(array('ajax', 'window', 'popup', 'access', 'date', 'viewer', 'socnetlogdest','color_picker', 'sidepanel', 'clipboard')); \Bitrix\Main\UI\Extension::load("ui.alerts"); \Bitrix\Main\UI\Extension::load("ui.buttons"); \Bitrix\Main\UI\Extension::load("ui.buttons.icons"); \Bitrix\Main\UI\Extension::load("ui.tooltip"); if(\Bitrix\Main\Loader::includeModule('rest')) { CJSCore::Init(array('applayout')); } if(\Bitrix\Main\Loader::includeModule('webservice')) { CJSCore::Init(array('stssync')); } if (\Bitrix\Main\Loader::includeModule('bitrix24') && !in_array(\CBitrix24::getLicenseType(), array('company', 'demo', 'edu', 'bis_inc', 'nfr'))) { \CBitrix24::initLicenseInfoPopupJS(); } ?> <script> top.BXCRES = {}; (function(window) { if (!window.BXEventCalendar) { var BXEventCalendar = { instances: {}, Show: function(config, data, additionalParams) { BX.ready(function() { BXEventCalendar.instances[config.id] = new window.BXEventCalendar.Core(config, data, additionalParams); }); }, Get: function(id) { return BXEventCalendar.instances[id] || false; } }; window.BXEventCalendar = BXEventCalendar; } BX.onCustomEvent(window, "onBXEventCalendarInit"); })(window); </script><? CUtil::InitJSCore(array('event_calendar')); $config['weekStart'] = CCalendar::GetWeekStart(); $config['weekDays'] = self::GetWeekDaysEx($config['weekStart']); $config['days'] = self::GetWeekDays(); $config['month'] = array(Loc::getMessage('EC_JAN'), Loc::getMessage('EC_FEB'), Loc::getMessage('EC_MAR'), Loc::getMessage('EC_APR'), Loc::getMessage('EC_MAY'), Loc::getMessage('EC_JUN'), Loc::getMessage('EC_JUL'), Loc::getMessage('EC_AUG'), Loc::getMessage('EC_SEP'), Loc::getMessage('EC_OCT'), Loc::getMessage('EC_NOV'), Loc::getMessage('EC_DEC')); $config['month_r'] = array(Loc::getMessage('EC_JAN_R'), Loc::getMessage('EC_FEB_R'), Loc::getMessage('EC_MAR_R'), Loc::getMessage('EC_APR_R'), Loc::getMessage('EC_MAY_R'), Loc::getMessage('EC_JUN_R'), Loc::getMessage('EC_JUL_R'), Loc::getMessage('EC_AUG_R'), Loc::getMessage('EC_SEP_R'), Loc::getMessage('EC_OCT_R'), Loc::getMessage('EC_NOV_R'), Loc::getMessage('EC_DEC_R')); $APPLICATION->SetAdditionalCSS("/bitrix/js/calendar/cal-style.css"); ?> <div class="calendar-main-container" id="<?=$config['id']?>-main-container"></div> <script type="text/javascript"> window.BXEventCalendar.Show( <?= Json::encode($config)?>, <?= Json::encode($data)?>, <?= Json::encode($additionalParams)?> ); </script> <? } public static function GetWeekDays() { return array( array(Loc::getMessage('EC_MO_F'), Loc::getMessage('EC_MO'), 'MO'), array(Loc::getMessage('EC_TU_F'), Loc::getMessage('EC_TU'), 'TU'), array(Loc::getMessage('EC_WE_F'), Loc::getMessage('EC_WE'), 'WE'), array(Loc::getMessage('EC_TH_F'), Loc::getMessage('EC_TH'), 'TH'), array(Loc::getMessage('EC_FR_F'), Loc::getMessage('EC_FR'), 'FR'), array(Loc::getMessage('EC_SA_F'), Loc::getMessage('EC_SA'), 'SA'), array(Loc::getMessage('EC_SU_F'), Loc::getMessage('EC_SU'), 'SU') ); } public static function GetWeekDaysEx($weekStart = 'MO') { $days = self::GetWeekDays(); if ($weekStart == 'MO') return $days; $res = array(); $start = false; while(list($k, $day) = each($days)) { if ($day[2] == $weekStart) { $start = !$start; if (!$start) break; } if ($start) $res[] = $day; if ($start && $k == 6) reset($days); } return $res; } public static function GetAccessHTML($binging = 'calendar_section', $id = false) { if ($id === false) $id = 'bxec-'.$binging; $arTasks = CCalendar::GetAccessTasks($binging); ?> <span style="display:none;"> <select id="<?= $id?>" class="bxec-task-select"> <?foreach ($arTasks as $taskId => $task):?> <option value="<?=$taskId?>"><?= htmlspecialcharsex($task['title']);?></option> <?endforeach;?> </select> </span> <? } public static function GetUserfieldsEditHtml($eventId, $url = '') { global $USER_FIELD_MANAGER, $APPLICATION; $USER_FIELDS = $USER_FIELD_MANAGER->GetUserFields("CALENDAR_EVENT", $eventId, LANGUAGE_ID); if (!$USER_FIELDS || count($USER_FIELDS) == 0) return; $url = CHTTP::urlDeleteParams($url, array("action", "sessid", "bx_event_calendar_request", "event_id", "reqId")); $url = $url.(strpos($url,'?') === false ? '?' : '&').'action=userfield_save&bx_event_calendar_request=Y&'.bitrix_sessid_get(); ?> <form method="post" name="calendar-event-uf-form<?=$eventId?>" action="<?= $url?>" enctype="multipart/form-data" encoding="multipart/form-data"> <input name="event_id" type="hidden" value="" /> <input name="reqId" type="hidden" value="" /> <table cellspacing="0" class="bxc-prop-layout"> <?foreach ($USER_FIELDS as $arUserField):?> <tr> <td class="bxc-prop"><?= htmlspecialcharsbx($arUserField["EDIT_FORM_LABEL"])?>:</td> <td class="bxc-prop"> <?$APPLICATION->IncludeComponent( "bitrix:system.field.edit", $arUserField["USER_TYPE"]["USER_TYPE_ID"], array( "bVarsFromForm" => false, "arUserField" => $arUserField, "form_name" => "calendar-event-uf-form".$eventId ), null, array("HIDE_ICONS" => "Y") );?> </td> </tr> <?endforeach;?> </table> </form> <? } public static function GetUserfieldsViewHtml($eventId) { global $USER_FIELD_MANAGER, $APPLICATION; $USER_FIELDS = $USER_FIELD_MANAGER->GetUserFields("CALENDAR_EVENT", $eventId, LANGUAGE_ID); if (!$USER_FIELDS || count($USER_FIELDS) == 0) return; $bFound = false; foreach ($USER_FIELDS as $arUserField) { if ($arUserField['VALUE'] == "" || (is_array($arUserField['VALUE']) && !count($arUserField['VALUE']))) continue; if (!$bFound) { $bFound = true; ?><table cellspacing="0" class="bxc-prop-layout"><? } ?> <tr> <td class="bxc-prop-name"><?= htmlspecialcharsbx($arUserField["EDIT_FORM_LABEL"])?>:</td> <td class="bxc-prop-value"> <?$APPLICATION->IncludeComponent( "bitrix:system.field.view", $arUserField["USER_TYPE"]["USER_TYPE_ID"], array("arUserField" => $arUserField), null, array("HIDE_ICONS"=>"Y") );?> </td> </tr> <? } if ($bFound) { ?></table><? } } public static function DisplayColorSelector($id, $key = 'sect', $colors = false) { if (!$colors) { $colors = array( '#DAA187','#78D4F1','#C8CDD3','#43DAD2','#EECE8F','#AEE5EC','#B6A5F6','#F0B1A1','#82DC98','#EE9B9A', '#B47153','#2FC7F7','#A7ABB0','#04B4AB','#FFA801','#5CD1DF','#6E54D1','#F73200','#29AD49','#FE5957' ); } ?> <div class="bxec-color-inp-cont"> <input class="bxec-color-inp" id="<?=$id?>-<?=$key?>-color-inp"/> <a id="<?=$id?>-<?=$key?>-text-color-inp" href="javascript:void('');" class="bxec-color-text-link"><?= Loc::getMessage('EC_TEXT_COLOR')?></a> </div> <div class="bxec-color-cont" id="<?=$id?>-<?=$key?>-color-cont"> <?foreach($colors as $i => $color):?><span class="bxec-color-it"><a id="<?=$id?>-<?=$key?>-color-<?=$i?>" style="background-color:<?= $color?>" href="javascript:void(0);"></a></span><?endforeach;?> </div> <? } public static function CheckBitrix24Limits($params) { global $APPLICATION; $result = !CCalendar::IsBitrix24() || CBitrix24BusinessTools::isToolAvailable(CCalendar::GetCurUserId(), "calendar"); if (!$result) { ?><div id="<?=$params['id']?>-bitrix24-limit" class="bxec-b24-limit-wrap"><? $APPLICATION->IncludeComponent("bitrix:bitrix24.business.tools.info", "", array("SHOW_TITLE" => "Y")); ?></div><? } return $result; } } ?>