1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
interface.php
См. документацию.
1<?
3{
4 const DEFAULT_ITEM_SORT = 100;
5 private static $arItems = array();
6
7 public static function addItem($arItem)
8 {
9 if (!isset($arItem["sort"]))
10 $arItem["sort"] = self::DEFAULT_ITEM_SORT;
11
12 self::$arItems[] = $arItem;
13
14 return count(self::$arItems);
15 }
16
17 public static function buildMenu($arParams)
18 {
19 if (!empty(self::$arItems))
20 return self::$arItems;
21
22 if (isset($arParams["MENU_FILE"]))
23 {
25
26 require($_SERVER["DOCUMENT_ROOT"] . $arParams["MENU_FILE"]);
27
28 if (!empty($arMobileMenuItems))
29 foreach ($arMobileMenuItems as $arItem)
30 self::addItem($arItem);
31 }
32
33 if (isset($arParams["EVENT_NAME"]))
34 {
35 foreach (GetModuleEvents("mobileapp", $arParams["EVENT_NAME"], true) as $arHandler)
36 ExecuteModuleEventEx($arHandler);
37 }
38
40
41 sortByColumn(self::$arItems, "sort");
42
43 return self::$arItems;
44 }
45
46 public static function getDefaultUrl($arParams)
47 {
48 if (!self::buildMenu($arParams))
49 return false;
50
51 $firstUrl = '';
52
53 foreach (self::$arItems as $arSection)
54 {
55 if (!isset($arSection["items"]) || !is_array($arSection["items"]))
56 continue;
57
58 foreach ($arSection["items"] as $arItem)
59 {
60 if (isset($arItem["default"]) && $arItem["default"] == true && isset($arItem["data-url"]))
61 return $arItem["data-url"];
62
63 if (isset($arItem["data-url"]) && empty($firstUrl))
64 $firstUrl = $arItem["data-url"];
65 }
66 }
67
68 if ($firstUrl == '' && isset($arParams["MOBILE_APP_INDEX_PAGE"]))
69 $firstUrl = $arParams["MOBILE_APP_INDEX_PAGE"];
70
71 return $firstUrl;
72 }
73}
74
76{
77 private static function getTitleHtml($title)
78 {
79 return '<div class="order_title">' . $title . '</div>';
80 }
81
82 private static function getUpperButtonsHtml($arButtons)
83 {
84 $retHtml = '<div class="order_nav"><ul>';
85
86 foreach ($arButtons as $arButton)
87 {
88 $buttonHtml = '<li';
89
90 if (isset($arButton["CURRENT"]) && $arButton["CURRENT"])
91 $buttonHtml .= ' class="current"';
92
93 $buttonHtml .= '><a href=';
94
95 if (isset($arButton["HREF"]))
96 $buttonHtml .= '"' . $arButton["HREF"] . '"';
97 else
98 $buttonHtml .= '"javascript:void(0);"';
99
100 if (isset($arButton["ONCLICK"]))
101 $buttonHtml .= ' onclick="' . $arButton["ONCLICK"] . '"';
102
103 $buttonHtml .= '>' . $arButton["TITLE"] . '</a></li>';
104
105 $retHtml .= $buttonHtml;
106 }
107
108 $retHtml .= '</ul><div class="clb"></div></div>';
109
110 return $retHtml;
111 }
112
113 private static function getSectionHtml($arSection)
114 {
115 $retHtml = '<div class="order_infoblock';
116
117 if (!isset($arSection["OPEN"]) || !$arSection["OPEN"])
118 $retHtml .= ' close';
119
120 if (isset($arSection["TOTAL"]) && $arSection["TOTAL"])
121 $retHtml .= ' total';
122
123 $retHtml .= '">
124 <div class="order_infoblock_title" onclick="BX.toggleClass(this.parentNode,\'close\');">' .
125 $arSection["TITLE"] . '<span></span></div>';
126
127 if ($arSection["TYPE"] == "container")
128 {
129 $retHtml .= $arSection["HTML"];
130 }
131 else
132 {
133 $retHtml .= '
134 <div class="order_infoblock_content">
135 <table class="order_infoblock_content_table">';
136
137 if(is_array($arSection["ROWS"]))
138 {
139 foreach ($arSection["ROWS"] as $row)
140 {
141 $retHtml .= '<tr';
142
143 if (isset($row["HIGLIGHTED"]) && $row["HIGLIGHTED"] == true)
144 $retHtml .= ' class="order_detail_container_itogi_table_td_green"';
145
146 $retHtml .= '>
147 <td class="order_infoblock_content_table_tdtitle">' . $row["TITLE"] . '</td>
148 <td class="order_infoblock_content_table_tdvalue';
149
150 $retHtml .= '">' . $row["VALUE"] . '</td></tr>';
151 }
152 }
153
154 $retHtml .= '</table>';
155
156 if (isset($arSection["BOTTOM"]) && isset($arSection["BOTTOM"]["VALUE"]))
157 {
158 $retHtml .= '<div class=';
159 if (isset($arSection["BOTTOM"]["STYLE"]))
160 {
161 if ($arSection["BOTTOM"]["STYLE"] == 'green')
162 $retHtml .= '"order_infoblock_order_green">';
163 else
164 $retHtml .= '"order_infoblock_order_canceled">';
165 }
166
167 $retHtml .= $arSection["BOTTOM"]["VALUE"] . '</div>';
168 }
169
170 $retHtml .= '</div>';
171 }
172
173 $retHtml .= '</div>';
174
175 return $retHtml;
176 }
177
178 public static function getHtml($arAdminDetail)
179 {
180 $retHtml = '';
181
182 if (isset($arAdminDetail["TITLE"]))
183 $retHtml .= self::getTitleHtml($arAdminDetail["TITLE"]);
184
185 if (isset($arAdminDetail["UPPER_BUTTONS"]))
186 $retHtml .= self::getUpperButtonsHtml($arAdminDetail["UPPER_BUTTONS"]);
187
188 if (isset($arAdminDetail["SECTIONS"]) && is_array($arAdminDetail["SECTIONS"]))
189 foreach ($arAdminDetail["SECTIONS"] as $arSection)
190 $retHtml .= self::getSectionHtml($arSection);
191
192 return $retHtml;
193 }
194}
195
197{
198 private $arDetail;
199
200 public function setTitle($strTitle)
201 {
202
203 $this->arDetail["TITLE"] = $strTitle;
204 }
205
206 public function addUpperButton($arButton)
207 {
208 $this->arDetail["UPPER_BUTTONS"][] = $arButton;
209 }
210
211 public function addSection($arSection)
212 {
213 $this->arDetail["SECTIONS"][] = $arSection;
214 }
215
216 public function getHtml()
217 {
218 return CAdminMobileDetailTmpl::getHtml($this->arDetail);
219 }
220
221 public function getItem()
222 {
223 return $this->arDetail;
224 }
225}
226
228{
229 public static function getCheckBoxesHtml($arCB, $strTitle = '', $arChecked = array(), $arParams = array())
230 {
231 if (!is_array($arCB) || empty($arCB))
232 return false;
233
234 $arCBParams["ITEMS"] = $arCB;
235
236 if ($strTitle <> '')
237 $arCBParams["TITLE"] = $strTitle;
238
239 if (!empty($arChecked))
240 $arCBParams["CHECKED"] = $arChecked;
241
242 if (is_array($arParams))
243 foreach ($arParams as $key => $param)
244 $arCBParams[$key] = $param;
245
246 ob_start();
247 $GLOBALS["APPLICATION"]->IncludeComponent(
248 'bitrix:mobileapp.interface.checkboxes',
249 '.default',
250 $arCBParams,
251 false
252 );
253
254 $resultHtml = ob_get_contents();
255 ob_end_clean();
256
257 return $resultHtml;
258 }
259}
260
262{
263 public static function getBase64Stub()
264 {
265 return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2N88f7jfwAJWAPJBTw90AAAAABJRU5ErkJggg==";
266 }
267}
268
270{
271 private static function getCustomAttribs($arField)
272 {
273 $strResult = '';
274
275 if(isset($arField["CUSTOM_ATTRS"]) && is_array($arField["CUSTOM_ATTRS"]))
276 {
277 $strResult .= ' ';
278 foreach ($arField["CUSTOM_ATTRS"] as $attrName => $attrVal)
279 $strResult .= ' '.$attrName.'="'.$attrVal.'"';
280 }
281
282 return $strResult;
283 }
284
285 private static function getCommonAttribs($arField)
286 {
287 $strResult = '';
288 $arCommonAttrs = array("ID", "NAME", "HIDDEN");
289
290 if(is_array($arField))
291 {
292 $strResult .= ' ';
293 foreach ($arCommonAttrs as $attrName)
294 {
295 if(isset($arField[$attrName]))
296 {
297 $strResult .= ' '.mb_strtolower($attrName).'="'.$arField[$attrName].'"';
298 }
299 }
300 }
301
302 return $strResult;
303 }
304
305 public static function getFieldHtml($arField)
306 {
307 global $APPLICATION;
308 $resultHtml = '';
309 $someAttribs = self::getCommonAttribs($arField);
310 $someAttribs .= self::getCustomAttribs($arField);
311
312
313
314 switch ($arField["TYPE"])
315 {
316 case 'BLOCK':
317 $resultHtml =
318 '<div class="mapp_edit_infoblock"'.
319 $someAttribs.
320 '>'.
321 '<div class="mapp_edit_infoblock_title">'.$arField["TITLE"].'</div>';
322
323 if(is_array($arField["DATA"]))
324 foreach ($arField["DATA"] as $fieldData)
325 $resultHtml .= self::getFieldHtml($fieldData);
326
327 $resultHtml .= '</div>';
328
329 break;
330
331 case 'TEXT_RO':
332 $resultHtml =
333 '<ul>
334 <li>
335 <div class="mapp_edit_li_container"'.
336 $someAttribs.
337 '>
338 <label>'.$arField["VALUE"].'</label>
339 </div>
340 </li>
341 </ul>';
342
343 break;
344
345 case 'HIDDEN':
346 $resultHtml = '<input type="hidden" value="'.$arField["VALUE"].'"'.$someAttribs.'>';
347 break;
348
349 case 'CHECKBOXES':
350 $arFieldParams = array(
351 "NOWRAP" => "Y",
352 "NAME" => $arField["NAME"],
353 "ITEMS" => $arField["VALUES"]
354 );
355
356 if(isset($arField["CHECKED"]) && is_array($arField["CHECKED"]))
357 $arFieldParams["CHECKED"] = $arField["CHECKED"];
358
359 ob_start();
360 $APPLICATION->IncludeComponent(
361 'bitrix:mobileapp.interface.checkboxes',
362 '.default',
363 $arFieldParams,
364 false);
365
366 $resultHtml = ob_get_contents();
367 ob_end_clean();
368
369 break;
370
371 case 'CHECKBOX':
372
373 $arItemParams = array(
374 "NAME" => $arField["NAME"],
375 "TITLE" => $arField["TITLE"]
376 );
377
378 if(isset($arField["VALUE"]) && $arField["VALUE"] == true)
379 $arItemParams["VALUE"] = $arField["VALUE"];
380
381 if(isset($arField["CHECKED"]) && $arField["CHECKED"] == true)
382 $arItemParams["CHECKED"] = $arField["CHECKED"];
383
384 if(isset($arField["TITLE"]) && $arField["TITLE"] == true)
385 $arItemParams["TITLE"] = $arField["TITLE"];
386
387 $arFieldParams = array(
388 "NOWRAP" => "Y",
389 "ITEMS" => array($arItemParams)
390 );
391
392 ob_start();
393 $APPLICATION->IncludeComponent(
394 'bitrix:mobileapp.interface.checkboxes',
395 '.default',
396 $arFieldParams,
397 false);
398
399 $resultHtml = ob_get_contents();
400 ob_end_clean();
401
402 break;
403
404 case 'RADIO':
405
406 $arFieldsParams = array(
407 "ITEMS" => $arField["VALUES"],
408 "TITLE" => $arField["TITLE"],
409 "RADIO_NAME" => $arField["NAME"],
410 "NOWRAP" => "Y"
411 );
412
413 if(isset($arField["SELECTED"]))
414 $arFieldsParams["SELECTED"] = $arField["SELECTED"];
415
416 ob_start();
417
418 $APPLICATION->IncludeComponent(
419 'bitrix:mobileapp.interface.radiobuttons',
420 '.default',
421 $arFieldsParams,
422 false);
423
424 $resultHtml = ob_get_contents();
425 ob_end_clean();
426
427 break;
428
429 case 'TEXT':
430 if(!isset($arField["VALUES"]))
431 $values = array($arField["VALUE"]);
432 else
433 $values = $arField["VALUES"];
434
435 $resultHtml = '<ul>';
436
437 foreach ($values as $value)
438 {
439 $resultHtml .= '
440 <li>
441 <div class="mapp_edit_input_container">
442 <input '.$someAttribs.' type="text"';
443
444 if($value == '' && isset($arField["TITLE"]))
445 {
446 $resultHtml .= ' onblur="if (this.value==\'\'){this.value=\''.$arField["TITLE"].'\'; BX.addClass(this, \'mapp_edit_input_empty\');}"'.
447 ' value="'.$arField["TITLE"].'"'.
448 ' onfocus="if (this.value==\''.$arField["TITLE"].'\') {this.value=\'\'; BX.removeClass(this, \'mapp_edit_input_empty\');}"'.
449 ' class = "mapp_edit_input_empty"';
450 }
451 elseif($value <> '')
452 {
453 $resultHtml .= ' value="'.$value.'"';
454 }
455
456 $resultHtml .='>
457 </div>
458 </li>';
459 }
460
461 $resultHtml .= '</ul>';
462 break;
463
464 case 'BUTTON':
465 $resultHtml = '<input type="button" class="mapp_edit_button"'.$someAttribs;
466
467 if(isset($arField["VALUE"]))
468 $resultHtml .= ' value="'.$arField["VALUE"].'"';
469
470 $resultHtml .= '>';
471 break;
472
473 case 'TEXTAREA':
474 $resultHtml = '';
475
476 if(!isset($arField["TITLE"]))
477 $arField["TITLE"] = "";
478
479 $resultHtml .= '<div class="mapp_edit_textarea_title">'.
480 $arField["TITLE"].
481 '</div>';
482
483 $resultHtml .= '
484 <div class="mapp_edit_textarea_container">
485 <textarea'.
486 ' class="mapp_edit_textarea"'.$someAttribs;
487
488 $resultHtml .= '>'.$arField["VALUE"].
489 '</textarea>
490 </div>';
491
492 if(!isset($arField["HINT"]))
493 $arField["HINT"] = "";
494
495 $resultHtml .= '<span class="mapp_edit_textarea_hint">'.
496 $arField["HINT"].
497 '</span>';
498
499 break;
500
501 case '2_RADIO_BUTTONS':
502
503 if(isset($arField["ID"]))
504 $id = $arField["ID"];
505 else
506 $id = "2rb_".rand();
507
508 $value = isset($arField['VALUE']) && $arField['VALUE'] == 'Y' ? 'Y' : 'N';
509
510 $resultHtml .= '
511 <div class="mapp_edit_li_container mapp_edit_tac">
512 <div class="mapp_edit_title_tac">'.$arField["TITLE"].'</div>
513 <div class="mapp_edit_button_yn">
514 <a'.
515 ' id="'.$id.'_b1'.'"'.
516 ' href="javascript:void(0);"'.
517 ($value == 'Y' ? ' class="current"' : '').
518 self::getCustomAttribs($arField["BUTT_Y"]).
519 '>'.
520 $arField["BUTT_Y"]["TITLE"].
521 '</a>
522 <a'.
523 ' id="'.$id.'_b2'.'"'.
524 ' href="javascript:void(0);"'
525 .($value != 'Y' ? ' class="current"' : '').
526 '>'
527 .$arField["BUTT_N"]["TITLE"].
528 self::getCustomAttribs($arField["BUTT_N"]).
529 '</a>
530 <input'.
531 ' type="hidden"'.
532 ' name="'.$arField["NAME"].'"'.
533 ' id="'.$id.'"'.
534 ' value ="'.$value.'"'.
535 self::getCustomAttribs($arField).
536 '>
537 <div class="mapp_edit_clb"></div>
538 </div>
539 </div>
540 <script>
541 new FastButton(BX("'.$id.'_b1'.'"), function(){ toggle'.$id.'(); '.$arField["BUTT_Y"]["ONCLICK"].'}, false);
542 new FastButton(BX("'.$id.'_b2'.'"), function(){ toggle'.$id.'(); '.$arField["BUTT_N"]["ONCLICK"].'}, false);
543 function toggle'.$id.'()
544 {
545 BX.toggleClass(BX("'.$id.'_b1'.'"),"current");
546 BX.toggleClass(BX("'.$id.'_b2'.'"),"current");
547
548 var input = BX("'.$id.'");
549
550 if(input && input.value)
551 {
552 if(input.value == "Y")
553 input.value = "N";
554 else
555 input.value = "Y";
556 }
557 }
558 </script>
559 ';
560
561 break;
562
563 case 'CUSTOM':
564 $resultHtml = $arField["HTML_DATA"];
565 break;
566
567 }
568
569 return $resultHtml;
570 }
571}
572?>
$arMobileMenuItems
Определения .eshopapp_menu.php:5
$arParams
Определения access_dialog.php:21
global $APPLICATION
Определения include.php:80
getItem()
Определения interface.php:221
getHtml()
Определения interface.php:216
addSection($arSection)
Определения interface.php:211
setTitle($strTitle)
Определения interface.php:200
addUpperButton($arButton)
Определения interface.php:206
static getHtml($arAdminDetail)
Определения interface.php:178
Определения interface.php:270
static getFieldHtml($arField)
Определения interface.php:305
static getCheckBoxesHtml($arCB, $strTitle='', $arChecked=array(), $arParams=array())
Определения interface.php:229
Определения interface.php:3
static getDefaultUrl($arParams)
Определения interface.php:46
static addItem($arItem)
Определения interface.php:7
static buildMenu($arParams)
Определения interface.php:17
const DEFAULT_ITEM_SORT
Определения interface.php:4
static OnAdminMobileGetPushSettings()
Определения push.php:105
Определения interface.php:262
static getBase64Stub()
Определения interface.php:263
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
sortByColumn(array &$array, $columns, $callbacks='', $defaultValueIfNotSetValue=null, $preserveKeys=false)
Определения tools.php:5087
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$title
Определения pdf.php:123
$GLOBALS['_____370096793']
Определения update_client.php:1