1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
favorites.php
См. документацию.
1<?php
2
9
10IncludeModuleLangFile(__FILE__);
11
12class CFavorites extends CDBResult
13{
14 public static function GetIDByUrl($url)
15 {
16 global $USER;
17
18 if ($url == "")
19 {
20 return 0;
21 }
22
23 $paresedUrl = CBXFavUrls::ParseDetail($url);
24 if ($paresedUrl !== false)
25 {
26 $pathInfo = pathinfo($paresedUrl["path"]);
27
28 $dbFav = CFavorites::GetList([], [
29 "URL" => "'%" . $pathInfo["basename"] . "%'",
30 "MENU_FOR_USER" => $USER->GetID(),
31 "LANGUAGE_ID" => LANGUAGE_ID,
32 ]);
33 while ($arFav = $dbFav->Fetch())
34 {
35 if (CBXFavUrls::Compare($paresedUrl, $arFav["URL"]))
36 {
37 return $arFav["ID"];
38 }
39 }
40 }
41
42 return 0;
43 }
44
45 public static function GetByID($ID)
46 {
47 global $DB;
48
49 $ID = intval($ID);
50 if ($ID <= 0)
51 {
52 return false;
53 }
54
55 return $DB->Query("
56 SELECT F.*,
57 " . $DB->DateToCharFunction("F.TIMESTAMP_X") . " as TIMESTAMP_X,
58 " . $DB->DateToCharFunction("F.DATE_CREATE") . " as DATE_CREATE
59 FROM b_favorite F
60 WHERE ID=" . $ID
61 );
62 }
63
64 public static function CheckFields($arFields)
65 {
66 global $APPLICATION;
67
68 $aMsg = [];
69 if (is_set($arFields, "NAME") && trim($arFields["NAME"]) == "")
70 {
71 $aMsg[] = ["id" => "NAME", "text" => GetMessage("fav_general_err_name")];
72 }
73 if (is_set($arFields, "URL") && trim($arFields["URL"]) == "")
74 {
75 $aMsg[] = ["id" => "URL", "text" => GetMessage("fav_general_err_url")];
76 }
77 if (is_set($arFields, "USER_ID"))
78 {
79 if (intval($arFields["USER_ID"]) > 0)
80 {
81 $res = CUser::GetByID(intval($arFields["USER_ID"]));
82 if (!$res->Fetch())
83 {
84 $aMsg[] = ["id" => "USER_ID", "text" => GetMessage("fav_general_err_user")];
85 }
86 }
87 elseif ($arFields["COMMON"] == "N")
88 {
89 $aMsg[] = ["id" => "USER_ID", "text" => GetMessage("fav_general_err_user1")];
90 }
91 }
92 if (is_set($arFields, "LANGUAGE_ID"))
93 {
94 if ($arFields["LANGUAGE_ID"] <> "")
95 {
96 $res = CLanguage::GetByID($arFields["LANGUAGE_ID"]);
97 if (!$res->Fetch())
98 {
99 $aMsg[] = ["id" => "LANGUAGE_ID", "text" => GetMessage("fav_general_err_lang")];
100 }
101 }
102 else
103 {
104 $aMsg[] = ["id" => "LANGUAGE_ID", "text" => GetMessage("fav_general_err_lang1")];
105 }
106 }
107
108 if (!empty($aMsg))
109 {
110 $e = new CAdminException($aMsg);
111 $APPLICATION->ThrowException($e);
112 return false;
113 }
114 return true;
115 }
116
117 public static function IsExistDuplicate($arFields)
118 {
119 if (!isset($arFields["MENU_ID"]) && !isset($arFields["URL"]) && !isset($arFields["NAME"]))
120 {
121 return false;
122 }
123
124 global $USER, $DB;
125
126 $uid = $USER->GetID();
127
128 $strSql = "SELECT MENU_ID, URL, ID FROM b_favorite WHERE ( ";
129
130 if (isset($arFields["MENU_ID"]))
131 {
132 $strSql .= "MENU_ID = '" . $DB->ForSql($arFields["MENU_ID"]) . "' AND ";
133 }
134
135 if (isset($arFields["URL"]))
136 {
137 $strSql .= "URL = '" . $DB->ForSql($arFields["URL"]) . "' AND ";
138 }
139
140 if (isset($arFields["NAME"]))
141 {
142 $strSql .= "NAME = '" . $DB->ForSql($arFields["NAME"]) . "' AND ";
143 }
144
145 $strSql .= "( USER_ID=" . $uid . " OR COMMON='Y' ))";
146
147 $dbFav = $DB->Query($strSql);
148
149 while ($arFav = $dbFav->GetNext())
150 {
151 if ($arFields["MENU_ID"] == $arFav["MENU_ID"] || $arFields["URL"] == $arFav["URL"] || $arFields["NAME"] == $arFav["NAME"])
152 {
153 return $arFav["ID"];
154 }
155 }
156
157 return false;
158 }
159
160 //Addition
161 public static function Add($arFields, $checkDuplicate = false)
162 {
163 global $DB;
164
166 {
167 return false;
168 }
169
170 if ($checkDuplicate)
171 {
173
174 if ($duplicate)
175 {
176 return $duplicate;
177 }
178 }
179
180 $codes = new CHotKeysCode;
181 $codeID = $codes->Add([
182 "CODE" => "location.href='" . $arFields["URL"] . "';",
183 "NAME" => $arFields["NAME"],
184 "COMMENTS" => "FAVORITES",
185 ]);
186
187 $codes->Update($codeID, [
188 "CLASS_NAME" => "FAV-" . $codeID,
189 "TITLE_OBJ" => "FAV-" . $codeID,
190 ]);
191
192 $arFields["CODE_ID"] = intval($codeID);
193
194 $ID = $DB->Add("b_favorite", $arFields);
195 return $ID;
196 }
197
198 //Update
199 public static function Update($ID, $arFields)
200 {
201 global $DB;
202 $ID = intval($ID);
203
205 {
206 return false;
207 }
208
209 $strUpdate = $DB->PrepareUpdate("b_favorite", $arFields);
210 if ($strUpdate != "")
211 {
212 $strSql = "UPDATE b_favorite SET " . $strUpdate . " WHERE ID=" . $ID;
213 if (!$DB->Query($strSql))
214 {
215 return false;
216 }
217 }
218 return true;
219 }
220
221 // delete by ID
222 public static function Delete($ID)
223 {
224 global $DB;
225 $codes = new CHotKeysCode;
226
228
229 while ($arFav = $res->Fetch())
230 {
231 $codes->Delete($arFav["CODE_ID"]);
232 }
233
234 return $DB->Query("DELETE FROM b_favorite WHERE ID='" . intval($ID) . "'");
235 }
236
237 public static function OnUserDelete($user_id)
238 {
239 global $DB;
240 return $DB->Query("DELETE FROM b_favorite WHERE USER_ID=" . intval($user_id));
241 }
242
243 public static function OnLanguageDelete($language_id)
244 {
245 global $DB;
246 return $DB->Query("DELETE FROM b_favorite WHERE LANGUAGE_ID='" . $DB->ForSQL($language_id, 2) . "'");
247 }
248
249 public static function GetList($aSort = [], $arFilter = [])
250 {
251 global $DB;
252 $arSqlSearch = [];
253 if (is_array($arFilter))
254 {
255 foreach ($arFilter as $key => $val)
256 {
257 if ((string)$val == '' || $val == "NOT_REF")
258 {
259 continue;
260 }
261 switch (mb_strtoupper($key))
262 {
263 case "ID":
264 $arSqlSearch[] = GetFilterQuery("F.ID", $val, "N");
265 break;
266 case "USER_ID":
267 $arSqlSearch[] = "F.USER_ID = " . intval($val);
268 break;
269 case "MENU_FOR_USER":
270 $arSqlSearch[] = "(F.USER_ID=" . intval($val) . " OR F.COMMON='Y')";
271 break;
272 case "COMMON":
273 $arSqlSearch[] = "F.COMMON = '" . $DB->ForSql($val, 1) . "'";
274 break;
275 case "LANGUAGE_ID":
276 $arSqlSearch[] = "F.LANGUAGE_ID = '" . $DB->ForSql($val, 2) . "'";
277 break;
278 case "DATE1":
279 $arSqlSearch[] = "F.TIMESTAMP_X >= FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y"), "d.m.Y") . "')";
280 break;
281 case "DATE2":
282 $arSqlSearch[] = "F.TIMESTAMP_X <= FROM_UNIXTIME('" . MkDateTime(FmtDate($val, "D.M.Y") . " 23:59:59", "d.m.Y") . "')";
283 break;
284 case "MODIFIED":
285 $arSqlSearch[] = GetFilterQuery("UM.ID, UM.LOGIN, UM.LAST_NAME, UM.NAME", $val);
286 break;
287 case "MODIFIED_ID":
288 $arSqlSearch[] = "F.MODIFIED_BY = " . intval($val);
289 break;
290 case "CREATED":
291 $arSqlSearch[] = GetFilterQuery("UC.ID, UC.LOGIN, UC.LAST_NAME, UC.NAME", $val);
292 break;
293 case "CREATED_ID":
294 $arSqlSearch[] = "F.CREATED_BY = " . intval($val);
295 break;
296 case "KEYWORDS":
297 $arSqlSearch[] = GetFilterQuery("F.COMMENTS", $val);
298 break;
299 case "NAME":
300 $arSqlSearch[] = GetFilterQuery("F.NAME", $val);
301 break;
302 case "URL":
303 $arSqlSearch[] = GetFilterQuery("F.URL", $val);
304 break;
305 case "MODULE_ID":
306 $arSqlSearch[] = "F.MODULE_ID='" . $DB->ForSql($val, 50) . "'";
307 break;
308 case "MENU_ID":
309 $arSqlSearch[] = "F.MENU_ID='" . $DB->ForSql($val, 255) . "'";
310 break;
311 }
312 }
313 }
314
315 $sOrder = "";
316 foreach ($aSort as $key => $val)
317 {
318 $ord = (mb_strtoupper($val) <> "ASC" ? "DESC" : "ASC");
319 switch (mb_strtoupper($key))
320 {
321 case "ID":
322 $sOrder .= ", F.ID " . $ord;
323 break;
324 case "LANGUAGE_ID":
325 $sOrder .= ", F.LANGUAGE_ID " . $ord;
326 break;
327 case "COMMON":
328 $sOrder .= ", F.COMMON " . $ord;
329 break;
330 case "USER_ID":
331 $sOrder .= ", F.USER_ID " . $ord;
332 break;
333 case "TIMESTAMP_X":
334 $sOrder .= ", F.TIMESTAMP_X " . $ord;
335 break;
336 case "MODIFIED_BY":
337 $sOrder .= ", F.MODIFIED_BY " . $ord;
338 break;
339 case "NAME":
340 $sOrder .= ", F.NAME " . $ord;
341 break;
342 case "URL":
343 $sOrder .= ", F.URL " . $ord;
344 break;
345 case "SORT":
346 $sOrder .= ", F.C_SORT " . $ord;
347 break;
348 case "MODULE_ID":
349 $sOrder .= ", F.MODULE_ID " . $ord;
350 break;
351 case "MENU_ID":
352 $sOrder .= ", F.MENU_ID " . $ord;
353 break;
354 }
355 }
356 if ($sOrder == '')
357 {
358 $sOrder = "F.ID DESC";
359 }
360 $strSqlOrder = " ORDER BY " . trim($sOrder, ", ");
361
362 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
363 $strSql = "
364 SELECT
365 F.ID, F.C_SORT, F.NAME, F.MENU_ID, F.URL, F.MODIFIED_BY, F.CREATED_BY, F.MODULE_ID, F.LANGUAGE_ID,
366 F.COMMENTS, F.COMMON, F.USER_ID, UM.LOGIN AS M_LOGIN, UC.LOGIN as C_LOGIN, U.LOGIN, F.CODE_ID,
367 " . $DB->DateToCharFunction("F.TIMESTAMP_X") . " TIMESTAMP_X,
368 " . $DB->DateToCharFunction("F.DATE_CREATE") . " DATE_CREATE,
369 " . $DB->Concat($DB->IsNull("UM.NAME", "''"), "' '", $DB->IsNull("UM.LAST_NAME", "''")) . " as M_USER_NAME,
370 " . $DB->Concat($DB->IsNull("UC.NAME", "''"), "' '", $DB->IsNull("UC.LAST_NAME", "''")) . " as C_USER_NAME,
371 " . $DB->Concat($DB->IsNull("U.NAME", "''"), "' '", $DB->IsNull("U.LAST_NAME", "''")) . " as USER_NAME
372 FROM
373 b_favorite F
374 LEFT JOIN b_user UM ON (UM.ID = F.MODIFIED_BY)
375 LEFT JOIN b_user UC ON (UC.ID = F.CREATED_BY)
376 LEFT JOIN b_user U ON (U.ID = F.USER_ID)
377 WHERE
378 " . $strSqlSearch . "
379 " . $strSqlOrder;
380
381 $res = $DB->Query($strSql);
382
383 return $res;
384 }
385}
386
388{
389 private $arItems = [];
390
391 public function __construct()
392 {
394
395 //for ajax requests, and menu autoupdates
396 $adminPage->Init();
397 $adminMenu->Init($adminPage->aModules);
398
399 $dbFav = CFavorites::GetList(
400 [
401 "COMMON" => "ASC",
402 "SORT" => "ASC",
403 "NAME" => "ASC",
404 ], [
405 "MENU_FOR_USER" => $USER->GetID(),
406 "LANGUAGE_ID" => LANGUAGE_ID,
407 ]
408 );
409
410 while ($arFav = $dbFav->GetNext())
411 {
412 if ($arFav["COMMON"] == "Y" && $arFav["MODULE_ID"] <> "" && $APPLICATION->GetGroupRight($arFav["MODULE_ID"]) < "R")
413 {
414 continue;
415 }
416
417 $this->arItems[] = $arFav;
418 }
419 }
420
421 public function GetMenuItem($itemsID, $arMenu)
422 {
423 if (!is_array($arMenu))
424 {
425 return false;
426 }
427
428 foreach ($arMenu as $arItem)
429 {
430 if (isset($arItem["items_id"]) && $arItem["items_id"] == $itemsID)
431 {
432 return $arItem;
433 }
434 else
435 {
436 if (is_array($arItem) && !empty($arItem))
437 {
438 $arFindItem = $this->GetMenuItem($itemsID, $arItem);
439
440 if (is_array($arFindItem) && !empty($arFindItem))
441 {
442 return $arFindItem;
443 }
444 }
445 }
446 }
447
448 return false;
449 }
450
451 public function GenerateItems()
452 {
453 global $adminMenu;
454
455 $favOptions = CUserOptions::GetOption('favorite', 'favorite_menu', ["stick" => "N"]);
456
457 $aMenu = [];
458
459 foreach ($this->arItems as $arItem)
460 {
461 $tmpMenu = [];
462
463 if ($arItem["MENU_ID"])
464 {
465 $tmpMenu = $this->GetMenuItem($arItem["MENU_ID"], $adminMenu->aGlobalMenu);
466 }
467
468 if (!$arItem["MENU_ID"] || !is_array($tmpMenu) || empty($tmpMenu))
469 {
470 $tmpMenu = [
471 "text" => $arItem["NAME"],
472 "url" => $arItem["URL"],
473 "dynamic" => false,
474 "items_id" => "menu_favorite_" . $arItem["ID"],
475 "title" => $arItem["NAME"],
476 "icon" => "fav_menu_icon",
477 "page_icon" => "fav_page_icon",
478 ];
479 }
480
481 $tmpMenu["fav_id"] = $arItem["ID"];
482 $tmpMenu["parent_menu"] = "global_menu_desktop";
483
484 if (!isset($tmpMenu['icon']) || $tmpMenu['icon'] == '')
485 {
486 $tmpMenu['icon'] = 'fav_menu_icon';
487 }
488
489 if ($this->CheckItemActivity($tmpMenu))
490 {
491 $tmpMenu["_active"] = true;
492 }
493
494 if ((isset($tmpMenu["_active"]) && $tmpMenu["_active"] || $this->CheckSubItemActivity($tmpMenu)) && $favOptions["stick"] == "Y")
495 {
496 $GLOBALS["BX_FAVORITE_MENU_ACTIVE_ID"] = true;
497 }
498
499 $aMenu[] = $tmpMenu;
500 }
501
502 return $aMenu;
503 }
504
505 private function CheckSubItemActivity($arMenu)
506 {
507 if (!isset($arMenu["items"]) || !is_array($arMenu["items"]))
508 {
509 return false;
510 }
511
512 foreach ($arMenu["items"] as $menu)
513 {
514 if (!empty($menu["_active"]))
515 {
516 return true;
517 }
518
519 if ($this->CheckSubItemActivity($menu))
520 {
521 return true;
522 }
523 }
524
525 return false;
526 }
527
528 private function CheckItemActivity($arMenu)
529 {
530 if (!empty($arMenu["_active"]))
531 {
532 return true;
533 }
534
535 global $adminMenu, $APPLICATION;
536
537 if (empty($adminMenu->aActiveSections))
538 {
539 return false;
540 }
541
542 $currentUrl = $APPLICATION->GetCurPageParam();
543 $menuUrl = htmlspecialcharsback($arMenu["url"] ?? '');
544
545 if (CBXFavUrls::Compare($menuUrl, $currentUrl))
546 {
547 return true;
548 }
549
550 $activeSectUrl = htmlspecialcharsback($adminMenu->aActiveSections["_active"]["url"] ?? '');
551
552 if (CBXFavUrls::Compare($menuUrl, $activeSectUrl))
553 {
554 return true;
555 }
556
557 return $this->CheckFilterActivity($currentUrl, $menuUrl, $activeSectUrl);
558 }
559
560 private function CheckFilterActivity($currentUrl, $menuUrl, $activeSectUrl)
561 {
562 if (!CBXFavUrls::Compare($menuUrl, $activeSectUrl))
563 {
564 return false;
565 }
566
567 $curUrlFilterId = CBXFavUrls::GetFilterId($currentUrl);
568
569 if ($curUrlFilterId == CBXFavUrls::GetFilterId($menuUrl))
570 {
571 return true;
572 }
573
574 if ($curUrlFilterId && $curUrlFilterId == CBXFavUrls::GetPresetId($menuUrl))
575 {
576 return true;
577 }
578
579 if (CBXFavUrls::GetPresetId($currentUrl) && CBXFavUrls::GetFilterId($menuUrl) == CBXFavUrls::GetPresetId($currentUrl))
580 {
581 return true;
582 }
583
584 return false;
585 }
586
587 public function GenerateMenuHTML($id = 0)
588 {
589 global $adminMenu;
590 $buff = "";
591
592 $menuItems = $this->GenerateItems();
593
594 if (empty($menuItems))
595 {
596 $buff .= self::GetEmptyMenuHTML();
597 }
598 else
599 {
600 ob_start();
601
602 echo '<script bxrunfirst="true">BX.adminFav.setLastId(' . intval($id) . ');</script>';
603
604 $menuScripts = '';
605 foreach ($menuItems as $arItem)
606 {
607 $menuScripts .= $adminMenu->Show($arItem);
608 }
609
610 echo '<script>' . $menuScripts . '</script>';
611
612 $buff .= ob_get_contents();
613 ob_end_clean();
614 }
615
616 $buff .= self::GetMenuHintHTML(empty($menuItems));
617
618 return $buff;
619 }
620
621 public static function GetEmptyMenuHTML()
622 {
623 return '
624<div class="adm-favorites-cap-text">
625 ' . GetMessage("fav_main_menu_nothing") . '
626</div>';
627 }
628
629 public static function GetMenuHintHTML($IsMenuEmpty)
630 {
631 $favHintOptions = CUserOptions::GetOption('favorites_menu', "hint", ["hide" => "N"]);
632
633 if (!$IsMenuEmpty && $favHintOptions["hide"] == "Y")
634 {
635 return false;
636 }
637
638 $retHtml = '
639<div id="adm-favorites-cap-hint-block" class="adm-favorites-cap-hint-block">
640 <div class="adm-favorites-cap-hint-icon icon-1"></div>
641 <div class="adm-favorites-cap-hint-text">
642 ' . GetMessage("fav_main_menu_add_icon") . '
643 </div>
644 <div class="adm-favorites-cap-hint-icon icon-2"></div>
645 <div class="adm-favorites-cap-hint-text">
646 ' . GetMessage("fav_main_menu_add_dd") . '
647 </div>';
648
649 if (!$IsMenuEmpty)
650 {
651 $retHtml .= '
652 <a class="adm-favorites-cap-remove" href="javascript:void(0);" onclick="BX.adminFav.closeHint(this);">' . GetMessage("fav_main_menu_close_hint") . '</a>';
653 }
654
655 $retHtml .= '
656</div>';
657
658 return $retHtml;
659 }
660}
661
663{
664 const FILTER_ID_VALUE = "adm_filter_applied";
665 const PRESET_ID_VALUE = "adm_filter_preset";
666
667 public static function Compare($url1, $url2, $arReqVals = [], $arSkipVals = [])
668 {
669 if ($url1 == '' && $url2 == '')
670 {
671 return false;
672 }
673
674 if (is_array($url1))
675 {
676 $arUrl1 = $url1;
677 }
678 elseif (is_string($url1))
679 {
680 $arUrl1 = self::ParseDetail($url1);
681 }
682 else
683 {
684 return false;
685 }
686
687 $arUrl2 = self::ParseDetail($url2);
688
689 if (isset($arUrl1["path"]) && isset($arUrl2["path"]) && $arUrl1["path"] != $arUrl2["path"])
690 {
691 $urlPath1 = pathinfo($arUrl1["path"]);
692 $urlPath2 = pathinfo($arUrl2["path"]);
693
694 if (
695 isset($urlPath1["dirname"])
696 && $urlPath1["dirname"] != '.'
697 && isset($urlPath2["dirname"])
698 && $urlPath2["dirname"] != '.'
699 && $urlPath1["dirname"] != $urlPath2["dirname"]
700 )
701 {
702 return false;
703 }
704
705 if (isset($urlPath1["basename"]) && isset($urlPath2["basename"]) && $urlPath1["basename"] != $urlPath2["basename"])
706 {
707 return false;
708 }
709 }
710
711 if (isset($arUrl1["host"]) && isset($arUrl2["host"]) && $arUrl1["host"] != $arUrl2["host"])
712 {
713 return false;
714 }
715
716 if (isset($arUrl1["query"]) && isset($arUrl2["query"]) && $arUrl1["query"] == $arUrl2["query"])
717 {
718 return true;
719 }
720
721 if (is_array($arUrl1["ar_query"]) && is_array($arUrl2["ar_query"]))
722 {
723 foreach ($arUrl1["ar_query"] as $valName => $value)
724 {
725 if (!isset($arUrl2["ar_query"][$valName]) || $arUrl1["ar_query"][$valName] != $arUrl2["ar_query"][$valName])
726 {
727 if (!empty($arReqVals))
728 {
729 if (in_array($valName, $arReqVals))
730 {
731 return false;
732 }
733
734 continue;
735 }
736 if (!empty($arSkipVals))
737 {
738 if (in_array($valName, $arSkipVals))
739 {
740 continue;
741 }
742
743 return false;
744 }
745
746 return false;
747 }
748 }
749
750 if (!empty($arReqVals))
751 {
752 foreach ($arReqVals as $valName => $value)
753 {
754 if (isset($arUrl2["ar_query"][$valName]))
755 {
756 if (!isset($arUrl1["ar_query"][$valName]))
757 {
758 return false;
759 }
760
761 if ($arUrl1["ar_query"][$valName] != $arUrl2["ar_query"][$valName])
762 {
763 return false;
764 }
765 }
766 }
767 }
768 }
769
770 return true;
771 }
772
773 public static function ParseDetail($url)
774 {
775 $parts = parse_url($url);
776
777 if (isset($parts['query']))
778 {
779 parse_str(urldecode($parts['query']), $parts['ar_query']);
780 }
781
782 return $parts;
783 }
784
785 public static function GetFilterId($url)
786 {
787 $urlParams = self::ParseDetail($url);
788
789 if (isset($urlParams["ar_query"][self::FILTER_ID_VALUE]) && $urlParams["ar_query"][self::FILTER_ID_VALUE] != "")
790 {
791 return $urlParams["ar_query"][self::FILTER_ID_VALUE];
792 }
793
794 return false;
795 }
796
797 public static function GetPresetId($url)
798 {
799 $urlParams = self::ParseDetail($url);
800
801 if (isset($urlParams["ar_query"][self::PRESET_ID_VALUE]) && $urlParams["ar_query"][self::PRESET_ID_VALUE] != "")
802 {
803 return $urlParams["ar_query"][self::PRESET_ID_VALUE];
804 }
805
806 return false;
807 }
808}
global $APPLICATION
Определения include.php:80
$DB
Определения dbresult.php:40
static GetByID($ID)
Определения language.php:99
Определения favorites.php:388
__construct()
Определения favorites.php:391
static GetMenuHintHTML($IsMenuEmpty)
Определения favorites.php:629
GenerateItems()
Определения favorites.php:451
static GetEmptyMenuHTML()
Определения favorites.php:621
GenerateMenuHTML($id=0)
Определения favorites.php:587
GetMenuItem($itemsID, $arMenu)
Определения favorites.php:421
Определения favorites.php:663
static ParseDetail($url)
Определения favorites.php:773
static Compare($url1, $url2, $arReqVals=[], $arSkipVals=[])
Определения favorites.php:667
static GetPresetId($url)
Определения favorites.php:797
const PRESET_ID_VALUE
Определения favorites.php:665
static GetFilterId($url)
Определения favorites.php:785
const FILTER_ID_VALUE
Определения favorites.php:664
Определения favorites.php:13
static CheckFields($arFields)
Определения favorites.php:64
static Add($arFields, $checkDuplicate=false)
Определения favorites.php:161
static GetList($aSort=[], $arFilter=[])
Определения favorites.php:249
static Delete($ID)
Определения favorites.php:222
static GetByID($ID)
Определения favorites.php:45
static GetIDByUrl($url)
Определения favorites.php:14
static OnUserDelete($user_id)
Определения favorites.php:237
static IsExistDuplicate($arFields)
Определения favorites.php:117
static OnLanguageDelete($language_id)
Определения favorites.php:243
static Update($ID, $arFields)
Определения favorites.php:199
Определения hot_keys.php:12
Add($arFields)
Определения hot_keys.php:264
$arFields
Определения dblapprove.php:5
$arMenu
Определения file_new.php:216
$res
Определения filter_act.php:7
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
if($ajaxMode) $ID
Определения get_user.php:27
$uid
Определения hot_keys_act.php:8
global $adminMenu
Определения init_admin.php:7
global $adminPage
Определения init_admin.php:7
global $USER
Определения csv_new_run.php:40
if(( $ACTION=='EXPORT_EDIT'||$ACTION=='EXPORT_COPY') &&$STEP==1) if($STEP > 1) if(( $ACTION=='EXPORT_EDIT'||$ACTION=='EXPORT_COPY') &&$STEP==2) if($STEP >2) $aMenu
Определения csv_new_setup.php:214
htmlspecialcharsback($str)
Определения tools.php:2693
FmtDate($str_date, $format=false, $site=false, $bSearchInSitesOnly=false)
Определения tools.php:745
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
MkDateTime($strDT, $format="d.m.Y H:i:s")
Определения tools.php:1977
$favOptions
Определения prolog_main_admin.php:148
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$val
Определения options.php:1793
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
$url
Определения iframe.php:7