1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
clock.php
См. документацию.
1<?php
3
4class CClock
5{
6 public static function Init(&$arParams)
7 {
8 if (!isset($arParams['inputId']))
9 $arParams['inputId'] = 'bxclock_'.rand();
10 if (!isset($arParams['inputName']))
11 $arParams['inputName'] = $arParams['inputId'];
12 if (!isset($arParams['step']))
13 $arParams['step'] = 5;
14
15 if (isset($arParams['view']) && $arParams['view'] == 'select' && $arParams['step'] < 30)
16 {
17 $arParams['step'] = 30;
18 }
19
20 if (!isset($arParams['view']) || $arParams['view'] != 'inline')
21 {
22 $arParams['view'] = 'input';
23 }
24 }
25
26 public static function Show($arParams)
27 {
28 global $APPLICATION;
29
31 $APPLICATION->AddHeadScript('/bitrix/js/main/utils.js');
32
33 $inputId = htmlspecialcharsbx($arParams['inputId'] ?? '');
34 $inputName = htmlspecialcharsbx($arParams['inputName'] ?? '');
35 $initTime = htmlspecialcharsbx($arParams['initTime'] ?? '');
36 $inputTitle = htmlspecialcharsbx($arParams['inputTitle'] ?? '');
37
38 $jsInputId = preg_replace("/[^a-z0-9_\\[\\]:]/i", "", $arParams['inputId']);
39
40 // Show input
41 switch ($arParams['view'])
42 {
43 case 'label':
44 ?>
45 <input type="hidden" id="<?=$inputId?>" name="<?=$inputName?>" value="<?=$initTime?>">
46 <div class="bx-clock-label" onmouseover="this.className='bx-clock-label-over';" onmouseout="this.className='bx-clock-label';" onclick=""><? echo ($arParams['initTime']? $initTime : 'Time'); ?></div><?
47 break;
48 case 'select':
49 ?>
50 <select id="<?=$inputId?>" name="<?=$inputName?>">
51 <?
52 for ($i = 0; $i < 24; $i++)
53 {
54 $h = ($i < 10) ? '0'.$i : $i;
55 ?><option value="<?=$h?>:00"><?=$h?>:00</option><?
56 if ($arParams['step']) {?><option value="<?=$h?>:30"><?=$h?>:30</option><?}
57 }
58 ?>
59 </select>
60 <?
61 break;
62 case 'inline':
63 ?>
64 <input type="hidden" id="<?=$inputId?>" name="<?=$inputName?>" value="<?=$initTime?>" />
65 <div id="<?=$inputId?>_clock"></div>
66 <script>
67 if (!window.bxClockLoaders)
68 {
69 window.bxClockLoaders = [];
70 window.onload = function() {
71 for (var i=0; i<window.bxClockLoaders.length; i++)
72 setTimeout(window.bxClockLoaders[i], 20*i + 20);
73 window.bxClockLoaders = null;
74 }
75 }
76
77 window.bxClockLoaders.push("bxShowClock_<?=$jsInputId?>('<?=CUtil::JSEscape($arParams['inputId'])?>_clock');");
78 </script>
79 <?
80 break;
81 default: //input
82 ?><input id="<?=$inputId?>" <?=($arParams['inputName']? 'name="'.$inputName.'"' : '')?> type="text" value="<?=$initTime?>" size="<?=IsAmPmMode() ? 6 : 4?>" <?=(isset($arParams['inputTitle'])? 'title="'.$inputTitle.'"' : '')?> <?=(isset($arParams['inputClass'])? 'class="'.$arParams['inputClass'].'"' : '')?> autocomplete="off"/><?
83 break;
84 }
85 // Show icon
86 if (!isset($arParams['showIcon']) || $arParams['showIcon'] !== false)
87 {
88 ?><a href="javascript:void(0);" onclick="bxShowClock_<?=$jsInputId?>()" title="<?=GetMessage('BX_CLOCK_TITLE')?>" onmouseover="this.className='bxc-icon-hover';" onmouseout="this.className='';"><img id="<?=$inputId?>_icon" src="/bitrix/images/1.gif" class="bx-clock-icon bxc-iconkit-c"></a><?
89 }
90
91 //Init JS and append CSS
92 ?><script>
93 function bxLoadClock_<?=$jsInputId?>(callback)
94 {
95 <?if(!isset($arParams['view']) || $arParams['view'] != 'inline'):?>
96 if (!window.JCClock && !window.jsUtils)
97 {
98 return setTimeout(function(){bxLoadClock_<?=$jsInputId?>(callback);}, 50);
99 }
100 <?endif;?>
101
102 if (!window.JCClock)
103 {
104 if(!!window.bClockLoading)
105 {
106 return setTimeout(function(){bxLoadClock_<?=$jsInputId?>(callback);}, 50);
107 }
108 else
109 {
110 window.bClockLoading = true;
111 return BX.load(
112 [
113 '<?=CUtil::GetAdditionalFileURL("/bitrix/js/main/clock.js")?>',
114 '<?=CUtil::GetAdditionalFileURL("/bitrix/themes/.default/clock.css")?>'
115 ],
116 function() {
117 BX.Runtime.loadExtension(['intranet.old-interface.clock', 'date'])
118 .then((exports) => {
119 (new BX.Intranet.Bitrix24.Clock()).init();
120 continueClockInitialization_<?=$jsInputId?>(callback);
121 })
122 .catch(() => {
123 continueClockInitialization_<?=$jsInputId?>(callback);
124 });
125 }
126 );
127 }
128 }
129 else
130 {
131 continueClockInitialization_<?=$jsInputId?>(callback);
132 }
133 }
134
135 function continueClockInitialization_<?=$jsInputId?>(callback)
136 {
137 window.bClockLoading = false;
138
139 var obId = 'bxClock_<?=$jsInputId?>';
140
141 window[obId] = new JCClock({
142 step: <?=intval($arParams['step'] ?? 0)?>,
143 initTime: '<?=CUtil::JSEscape($arParams['initTime'] ?? '')?>',
144 showIcon: <?= (isset($arParams['showIcon']) && $arParams['showIcon'] ? 'true' : 'false')?>,
145 inputId: '<?=CUtil::JSEscape($arParams['inputId'] ?? '')?>',
146 iconId: '<?=CUtil::JSEscape($arParams['inputId'] ?? '').'_icon'?>',
147 zIndex: <?= isset($arParams['zIndex']) ? intval($arParams['zIndex']) : 0 ?>,
148 AmPmMode: <?=(isset($arParams['am_pm_mode']) && $arParams['am_pm_mode'] ? 'true' : 'false')?>,
149 MESS: {
150 Insert: '<?=GetMessageJS('BX_CLOCK_INSERT')?>',
151 Close: '<?=GetMessageJS('BX_CLOCK_CLOSE')?>',
152 Hours: '<?=GetMessageJS('BX_CLOCK_HOURS')?>',
153 Minutes: '<?=GetMessageJS('BX_CLOCK_MINUTES')?>',
154 Up: '<?=GetMessageJS('BX_CLOCK_UP')?>',
155 Down: '<?=GetMessageJS('BX_CLOCK_DOWN')?>'
156 }
157 });
158
159 return callback.apply(window, [window[obId]]);
160 }
161
162 function bxShowClock_<?=$jsInputId?>(id)
163 {
164 bxLoadClock_<?=$jsInputId?>(function(obClock)
165 {
166 obClock.Show(id);
167 });
168 }
169 </script><?
170 }
171}
172?>
$arParams
Определения access_dialog.php:21
return select
Определения access_edit.php:440
global $APPLICATION
Определения include.php:80
Определения clock.php:5
static Show($arParams)
Определения clock.php:26
static Init(&$arParams)
Определения clock.php:6
endif
Определения csv_new_setup.php:990
$inputName
Определения options.php:197
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
<? endif;?> window document title
Определения prolog_main_admin.php:76
$i
Определения factura.php:643
font size
Определения invoice.php:442
case callback
Определения wrapper_popup.php:31