1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
filter_tools.php
См. документацию.
1<?php
2
4
6
7function CheckFilterDates($date1, $date2, &$date1_wrong, &$date2_wrong, &$date2_less_date1)
8{
9 global $DB;
10 $date1 = trim($date1);
11 $date2 = trim($date2);
12 $date1_wrong = "N";
13 $date2_wrong = "N";
14 $date2_less_date1 = "N";
15 if ($date1 <> '' && !CheckDateTime($date1)) $date1_wrong = "Y";
16 if ($date2 <> '' && !CheckDateTime($date2)) $date2_wrong = "Y";
17 if ($date1_wrong!="Y" && $date2_wrong!="Y" && $date1 <> '' && $date2 <> '' && $DB->CompareDates($date2,$date1)<0) $date2_less_date1="Y";
18}
19
20function InitFilterEx($arName, $varName, $action="set", $session=true, $FilterLogic="FILTER_logic")
21{
22 $sessAdmin = Application::getInstance()->getSession()["SESS_ADMIN"];
23 if ($session && isset($sessAdmin[$varName]) && is_array($sessAdmin[$varName]))
24 {
25 $FILTER = $sessAdmin[$varName];
26 }
27 else
28 {
29 $FILTER = [];
30 }
31
32 global $$FilterLogic;
33 if ($action=="set")
34 {
35 $FILTER[$FilterLogic] = $$FilterLogic;
36 }
37 else
38 {
39 $$FilterLogic = ($FILTER[$FilterLogic] ?? '');
40 }
41
42 for($i=0, $n=count($arName); $i < $n; $i++)
43 {
44 $name = $arName[$i];
45 $period = $arName[$i]."_FILTER_PERIOD";
46 $direction = $arName[$i]."_FILTER_DIRECTION";
47 $bdays = $arName[$i]."_DAYS_TO_BACK";
48
49 global $$name, $$direction, $$period, $$bdays;
50
51 if ($action=="set")
52 {
53 $FILTER[$name] = $$name;
54 if(isset($$period) || isset($FILTER[$period]))
55 $FILTER[$period] = $$period;
56
57 if(isset($$direction) || isset($FILTER[$direction]))
58 $FILTER[$direction] = $$direction;
59
60 if(isset($$bdays) || isset($FILTER[$bdays]))
61 {
62 $FILTER[$bdays] = $$bdays;
63 if ((string)$$bdays <> '' && $$bdays!="NOT_REF")
64 $$name = GetTime(time()-86400*intval($FILTER[$bdays]));
65 }
66
67 }
68 else
69 {
70 $$name = $FILTER[$name] ?? null;
71 if(isset($$period) || isset($FILTER[$period]))
72 $$period = $FILTER[$period];
73
74 if(isset($$direction) || isset($FILTER[$direction]))
75 $$direction = $FILTER[$direction];
76
77 if (isset($FILTER[$bdays]) && (string)$FILTER[$bdays] <> '' && $FILTER[$bdays]!="NOT_REF")
78 {
79 $$bdays = $FILTER[$bdays];
80 $$name = GetTime(time()-86400*intval($FILTER[$bdays]));
81 }
82 }
83 }
84
85 if($session)
86 {
87 if(!is_array(Application::getInstance()->getSession()["SESS_ADMIN"]))
88 Application::getInstance()->getSession()->set("SESS_ADMIN", []);
89 Application::getInstance()->getSession()["SESS_ADMIN"][$varName] = $FILTER;
90 }
91}
92
93function DelFilterEx($arName, $varName, $session=true, $FilterLogic="FILTER_logic")
94{
95 global $$FilterLogic;
96
97 if ($session)
98 unset(Application::getInstance()->getSession()["SESS_ADMIN"][$varName]);
99
100 foreach ($arName as $name)
101 {
102 $period = $name."_FILTER_PERIOD";
103 $direction = $name."_FILTER_DIRECTION";
104 $bdays = $name."_DAYS_TO_BACK";
105
106 global $$name, $$period, $$direction, $$bdays;
107
108 $$name = "";
109 $$period ="";
110 $$direction = "";
111 $$bdays = "";
112 }
113
114 $$FilterLogic = "and";
115}
116
117function InitFilter($arName)
118{
119 $md5Path = md5(GetPagePath());
120 $FILTER = Application::getInstance()->getSession()->get("SESS_ADMIN")[$md5Path];
121
122 foreach ($arName as $name)
123 {
124 global $$name;
125
126 if(isset($$name))
127 $FILTER[$name] = $$name;
128 else
129 $$name = $FILTER[$name];
130 }
131
132 Application::getInstance()->getSession()->get("SESS_ADMIN")[$md5Path] = $FILTER;
133}
134
135function DelFilter($arName)
136{
137 $md5Path = md5(GetPagePath());
138 unset(Application::getInstance()->getSession()->get("SESS_ADMIN")[$md5Path]);
139
140 foreach ($arName as $name)
141 {
142 global $$name;
143 $$name = "";
144 }
145}
146
147function GetFilterHiddens($var = "filter_", $button = array("filter" => "Y", "set_filter" => "Y"))
148{
149 $res = '';
150 // если поступил не массив имен переменных то
151 $arrVars = [];
152 if (!is_array($var))
153 {
154 // получим имена переменных фильтра по префиксу
155 $arKeys = @array_merge(array_keys($_GET), array_keys($_POST));
156 if (is_array($arKeys) && !empty($arKeys))
157 {
158 foreach (array_unique($arKeys) as $key)
159 {
160 if (str_starts_with($key, $var))
161 {
162 $arrVars[] = $key;
163 }
164 }
165 }
166 }
167 else
168 {
169 $arrVars = $var;
170 }
171
172 // если получили массив переменных фильтра то
173 if (is_array($arrVars) && !empty($arrVars))
174 {
175 // соберем строку из URL параметров
176 foreach ($arrVars as $var_name)
177 {
178 global $$var_name;
179 $value = $$var_name;
180 if (is_array($value))
181 {
182 foreach($value as $v)
183 {
184 $res .= '<input type="hidden" name="'.htmlspecialcharsbx($var_name).'[]" value="'.htmlspecialcharsbx($v).'">';
185 }
186 }
187 elseif ((string)$value <> '' && $value!="NOT_REF")
188 {
189 $res .= '<input type="hidden" name="'.htmlspecialcharsbx($var_name).'" value="'.htmlspecialcharsbx($value).'">';
190 }
191 }
192 }
193
194 if(is_array($button))
195 {
196 foreach($button as $key => $val)
197 {
198 $res.='<input type="hidden" name="'.htmlspecialcharsbx($key).'" value="'.htmlspecialcharsbx($val).'">';
199 }
200 }
201 else
202 {
203 $res .= $button;
204 }
205
206 return $res;
207}
208
209function GetFilterParams($var="filter_", $bDoHtmlEncode=true, $button = array("filter" => "Y", "set_filter" => "Y"))
210{
211 $arrVars = array(); // массив имен переменных фильтра
212 $res=""; // результирующая строка
213
214 // если поступил не массив имен переменных то
215 if(!is_array($var))
216 {
217 // получим имена переменных фильтра по префиксу
218 $arKeys = @array_merge(array_keys($_GET), array_keys($_POST));
219 if(is_array($arKeys) && !empty($arKeys))
220 {
221 foreach (array_unique($arKeys) as $key)
222 if (str_starts_with($key, $var))
223 $arrVars[] = $key;
224 }
225 }
226 else
227 $arrVars = $var;
228
229 // если получили массив переменных фильтра то
230 if(is_array($arrVars) && !empty($arrVars))
231 {
232 // соберем строку из URL параметров
233 foreach($arrVars as $var_name)
234 {
235 global $$var_name;
236 $value = $$var_name;
237 if(is_array($value))
238 {
239 foreach($value as $v)
240 $res .= "&".urlencode($var_name)."[]=".urlencode($v);
241 }
242 elseif((string)$value <> '' && $value!="NOT_REF")
243 {
244 $res .= "&".urlencode($var_name)."=".urlencode($value);
245 }
246 }
247 }
248
249 if(is_array($button))
250 {
251 foreach($button as $key => $val)
252 {
253 $res .= "&".$key."=".urlencode($val);
254 }
255 }
256 else
257 {
258 $res .= $button;
259 }
260
261
262 $tmp_phpbug = ($bDoHtmlEncode) ? htmlspecialcharsbx($res) : $res;
263
264 return $tmp_phpbug;
265 //return ($bDoHtmlEncode) ? htmlspecialcharsbx($res) : $res;
266}
267
268// устаревшая функция, оставлена для совместимости
269function GetFilterStr($arr, $button="set_filter")
270{
271 $str = '';
272 foreach ($arr as $var)
273 {
274 global $$var;
275 $value = $$var;
276 if (is_array($value))
277 {
278 if (!empty($value))
279 {
280 foreach($value as $v)
281 {
282 $str .= "&".urlencode($var)."[]=".urlencode($v);
283 }
284 }
285 }
286 elseif ((string)$value <> '' && $value!="NOT_REF")
287 {
288 $str .= "&".urlencode($var)."=".urlencode($value);
289 }
290 }
291 return $str."&".$button."=Y";
292}
293
295{
296 $var = $name."_exact_match";
297 global $$var;
298 if ($title===false) $title=GetMessage("MAIN_EXACT_MATCH");
299 return '<input type="hidden" name="'.$name.'_exact_match" value="N">'.InputType("checkbox", $name."_exact_match", "Y", $$var, false, "", "title='".$title."'");
300}
301
303{
304 if(!is_array($arr))
305 return "";
306 $str = "";
307 foreach($arr as $key => $value)
308 {
309 if (is_array($value))
310 {
311 foreach ($value as $a)
312 {
313 $str .= "&".$key.urlencode("[]")."=".urlencode($a);
314 }
315 }
316 elseif((string)$value <> '' && $value!="NOT_REF")
317 {
318 $str .= "&".$key."=".urlencode($value);
319 }
320 }
321 return $str;
322}
323
324function ShowAddFavorite($filterName=false, $btnName="set_filter", $module="statistic", $alt=false)
325{
326 global $sFilterID;
327
328 if ($alt===false)
329 $alt=GetMessage("MAIN_ADD_TO_FAVORITES");
330 if ($filterName===false)
331 $filterName = $sFilterID;
332 $url = urlencode($_SERVER['SCRIPT_NAME'] . "?" . $_SERVER["QUERY_STRING"] . GetUrlFromArray(Application::getInstance()->getSession()["SESS_ADMIN"][$filterName])."&".$btnName."=Y");
333 $str = "<a target='_blank' href='".BX_ROOT."/admin/favorite_edit.php?lang=".LANG."&module=$module&url=$url'><img alt='".$alt."' src='".BX_ROOT."/images/main/add_favorite.gif' width='16' height='16' border=0></a>";
334 echo $str;
335}
336
337function IsFiltered($strSqlSearch)
338{
339 return ($strSqlSearch <> '' && $strSqlSearch!="(1=1)" && $strSqlSearch!="(1=2)");
340}
341
342function ResetFilterLogic($FilterLogic="FILTER_logic")
343{
344 $var = $FilterLogic."_reset";
345 global $$var;
346 $$var = "Y";
347}
348
350{
351 global $LogicHelp;
352 $str = "";
353 if(LANGUAGE_ID == "ru")
354 $help_link = "https://dev.1c-bitrix.ru/api_help/main/general/filter.php";
355 else
356 $help_link = "https://www.bitrixsoft.com/help/index.html?page=".urlencode("source/main/help/en/filter.php.html");
357 if ($LogicHelp != "Y")
358 {
359 $str = "<script>
360 function LogicHelp() { window.open('".$help_link."', '','scrollbars=yes,resizable=yes,width=780,height=500,top='+Math.floor((screen.height - 500)/2-14)+',left='+Math.floor((screen.width - 780)/2-5)); }
361 </script>";
362 }
363 $str .= "<a title='".GetMessage("FILTER_LOGIC_HELP")."' class='adm-input-help-icon' href='javascript:LogicHelp()'></a>";
364 $LogicHelp = "Y";
365 return $str;
366}
367
368function ShowLogicRadioBtn($FilterLogic="FILTER_logic")
369{
370 global $$FilterLogic;
371
372 $s_and = "checked";
373 $s_or = '';
374 if ($$FilterLogic == "or")
375 {
376 $s_or = "checked";
377 $s_and = "";
378 }
379 $str = "<tr><td>".GetMessage("FILTER_LOGIC")."</td><td><input type='radio' name='$FilterLogic' value='and' ".$s_and.">".GetMessage("AND")."&nbsp;<input type='radio' name='$FilterLogic' value='or' ".$s_or.">".GetMessage("OR")."</td></tr>";
380 return $str;
381}
382
383function GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
384{
385 global $strError;
386 $f = new CFilterQuery("and", "yes", $procent, $ex_sep, $clob, $div_fields, $clob_upper);
387 $query = $f->GetQueryString($field, $val);
388 $error = $f->error;
389 if (trim($error) <> '')
390 {
391 $strError .= $error."<br>";
392 $query = "0";
393 }
394 return $query;
395}
396
397function GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
398{
399 $var = $FilterLogic."_reset";
400 global $strError, $$FilterLogic, $$var;
401 $ResetFilterLogic = $$var;
402 $$FilterLogic = ($$FilterLogic=="or") ? "or" : "and";
403 if($ResetFilterLogic=="Y" && $$FilterLogic=="or")
404 {
405 $$FilterLogic = "and";
406 $strError .= GetMessage("FILTER_ERROR_LOGIC")."<br>";
407 }
408 if($$FilterLogic=="or")
409 $strSqlSearch = "1=2";
410 else
411 $strSqlSearch = "1=1";
412 if (is_array($arSqlSearch) && !empty($arSqlSearch))
413 {
414 foreach ($arSqlSearch as $condition)
415 {
416 if ($condition <> '' && $condition!="0")
417 {
418 $strSqlSearch .= "
419 ".mb_strtoupper($$FilterLogic)."
420 (
421 ".$condition."
422 )
423 ";
424 }
425 }
426 }
427 return "($strSqlSearch)";
428}
429
432function BeginFilter($sID, $bFilterSet, $bShowStatus=true)
433{
435 $sFilterID = $sID;
436 $s = "";
438 {
439 $s .= '
440<script>
441function showfilter(id)
442{
443 var div = document.getElementById("flt_div_"+id);
444 var tbl = document.getElementById("flt_table_"+id);
445 var head = document.getElementById("flt_head_"+id);
446 var flts = "", curval = "", oldval="";
447 var aCookie = document.cookie.split("; ");
448 //document.cookie = "flts=X; expires=Thu, 31 Dec 1999 23:59:59 GMT; path='.BX_ROOT.'/admin/;";return;
449 for (var i=0; i < aCookie.length; i++)
450 {
451 var aCrumb = aCookie[i].split("=");
452 if ("flts" == aCrumb[0])
453 {
454 if(aCrumb.length>1 && aCrumb[1].length>0)
455 {
456 var val = aCrumb[1];
457 var arFVals = val.split("&");
458 for (var j=0; j < arFVals.length; j++)
459 {
460 val = arFVals[j];
461 if(val.length>0)
462 {
463 val = unescape(val);
464 val = val.split("=");
465 if(val.length>1 && val[1].length>0)
466 {
467 if(val[0] == id)
468 curval = val[1];
469 else
470 flts = flts + escape(val[0] + "=" + val[1]) + "&";
471 }
472 }
473 }
474 }
475 }
476
477 if ("flt_"+id == aCrumb[0])
478 oldval = aCrumb[1];
479 }
480
481 if(div.style.display!="none")
482 {
483 if(tbl.offsetWidth > 0)
484 head.style.width = tbl.offsetWidth;
485 if(oldval!="")
486 document.cookie = "flt_"+id+"=X; expires=Fri, 31 Dec 1999 23:59:59 GMT; path='.BX_ROOT.'/admin/;";
487 document.cookie = "flts="+flts+escape(id+"=N"+(tbl.offsetWidth))+"; expires=Thu, 31 Dec 2020 23:59:59 GMT; path='.BX_ROOT.'/admin/;";
488 hidefilter(id);
489 }
490 else
491 {
492 if(oldval!="")
493 document.cookie = "flt_"+id+"=X; expires=Fri, 31 Dec 1999 23:59:59 GMT; path='.BX_ROOT.'/admin/;";
494 document.cookie = "flts="+flts+escape(id+"=Y)")+"; expires=Thu, 31 Dec 2020 23:59:59 GMT; path='.BX_ROOT.'/admin/;";
495 document.getElementById("flt_link_show_"+id).style.display = "none";
496 document.getElementById("flt_link_hide_"+id).style.display = "inline";
497 document.getElementById("flt_image_"+id).src = "'.BX_ROOT.'/images/admin/line_up.gif";
498 document.getElementById("flt_image_"+id).alt = "'.GetMessage("admin_filter_hide").'";
499 div.style.display = "block";
500 if(tbl.clientWidth > 0)
501 head.style.width = tbl.clientWidth+2;
502 }
503}
504function hidefilter(id)
505{
506 document.getElementById("flt_link_show_"+id).style.display = "inline";
507 document.getElementById("flt_link_hide_"+id).style.display = "none";
508 document.getElementById("flt_image_"+id).src = "'.BX_ROOT.'/images/admin/line_down.gif";
509 document.getElementById("flt_image_"+id).alt = "'.GetMessage("admin_filter_show").'";
510 document.getElementById("flt_div_"+id).style.display = "none";
511}
512tmpImage = new Image();
513tmpImage.src = "'.BX_ROOT.'/images/admin/line_down.gif";
514tmpImage.src = "'.BX_ROOT.'/images/admin/line_up.gif";
515</script>
516';
517 $bFilterScriptShown = true;
518 }
519
520 parse_str($_COOKIE["flts"], $arFlts);
521 if(is_set($arFlts, $sID))
522 {
523 $fltval = $arFlts[$sID];
524 if(is_set($_COOKIE, "flt_".$sID))
525 unset($_COOKIE["flt_".$sID]);
526 }
527 else
528 $fltval = $_COOKIE["flt_".$sID];
529
530 $s .= '
531<table border="0" cellspacing="0" cellpadding="0" width="'.($fltval[0]=="N"? intval(mb_substr($fltval, 1)):'').'"><tr><td>
532<table border="0" cellspacing="0" cellpadding="0" width="100%" id="flt_head_'.$sID.'">
533<tr>
534 <td class="tablefilterhead">
535 <table width="100%" border="0" cellspacing="0" cellpadding="0">
536<tr>
537';
538 if($bShowStatus)
539 {
540 $s .= '
541 <td width="0%"><img src="'.BX_ROOT.'/images/admin/'.($bFilterSet? "green.gif":"grey.gif").'" alt="" width="16" height="16" border="0" hspace="1" vspace="1"></td>
542 <td width="0%"><font class="tableheadtext">&nbsp;</font></td>
543 <td width="100%" nowrap><font class="tableheadtext">'.($bFilterSet? GetMessage("admin_filter_filter_set"):GetMessage("admin_filter_filter_not_set")).'</font></td>
544 <td width="0%"><font class="tableheadtext">&nbsp;&nbsp;&nbsp;</font></td>
545';
546 }
547 else
548 {
549 $s .= '
550 <td width="100%"><img src="/bitrix/images/1.gif" width="1" height="18" alt=""></td>
551';
552 }
553 $s .= '
554 <td width="0%"><font class="tableheadtext"><div id="flt_link_hide_'.$sID.'" style="display:inline;"><a href="javascript:showfilter(\''.$sID.'\');" title="'.GetMessage("admin_filter_hide").'">'.GetMessage("admin_filter_hide2").'</a></div><div id="flt_link_show_'.$sID.'" style="display:none;"><a href="javascript:showfilter(\''.$sID.'\');" title="'.GetMessage("admin_filter_show").'">'.GetMessage("admin_filter_show2").'</a></div></font></td>
555 <td width="0%"><font class="tableheadtext">&nbsp;</font><a href="javascript:showfilter(\''.$sID.'\');"><img id="flt_image_'.$sID.'" src="'.BX_ROOT.'/images/admin/line_up.gif" alt="'.GetMessage("admin_filter_hide").'" width="30" height="11" border="0" hspace="3"></a></td>
556</tr>
557</table>
558 </td>
559</tr>
560</table>
561<div id="flt_div_'.$sID.'">
562<table border="0" cellspacing="1" cellpadding="0" class="filter" id="flt_table_'.$sID.'" width="100%">
563';
564 return $s;
565}
566
567function EndFilter($sID="")
568{
569 global $sFilterID;
570 if($sID == "")
571 $sID = $sFilterID;
572 $s = '
573</table>
574</div>
575</td></tr></table>
576
577';
578 parse_str($_COOKIE["flts"], $arFlts);
579 if(is_set($arFlts, $sID))
580 $fltval = $arFlts[$sID];
581 else
582 $fltval = $_COOKIE["flt_".$sID];
583
584 if($fltval[0]<>"Y")
585 $s .= '<script>hidefilter(\''.CUtil::JSEscape($sID).'\');</script>'."\n";
586 return $s;
587}
588
589function BeginNote($sParams = '', $sMessParams = '')
590{
591 if (defined("PUBLIC_MODE") && PUBLIC_MODE == 1)
592 {
593 \Bitrix\Main\UI\Extension::load("ui.alerts");
594 return '<div class="ui-alert ui-alert-warning" '.$sParams.'><div class="ui-btn-message">';
595 }
596 else
597 {
598 return '<div class="adm-info-message-wrap" '.$sParams.'><div class="adm-info-message" '.$sMessParams.'>';
599 }
600}
601function EndNote()
602{
603 return '
604 </div>
605</div>
606';
607}
608function ShowSubMenu($aMenu)
609{
610 $s = '
611<table cellspacing=0 cellpadding=0 border=0 >
612<tr>
613<td width="6"><img height=6 alt="" src="/bitrix/images/admin/mn_ltc.gif" width=6></td>
614<td background=/bitrix/images/admin/mn_tline.gif><img height=1 alt="" src="/bitrix/images/1.gif" width=1></td>
615<td width="6"><img height=6 alt="" src="/bitrix/images/admin/mn_rtc.gif" width=6></td></tr>
616<tr>
617<td width="6" background=/bitrix/images/admin/mn_lline.gif><img height=1 alt="" src="/bitrix/images/1.gif" width=1></td>
618<td valign=top class="submenutable">
619
620<table border="0" cellspacing="0" cellpadding="0">
621<tr valign="top">
622 <td><font class="submenutext">
623';
624foreach($aMenu as $menu)
625{
626 if($menu["SEPARATOR"]<>"")
627 {
628 $s .= '
629</font></td>
630<td width=13 background="/bitrix/images/admin/mn_delim.gif"><img height=1 alt="" src="/bitrix/images/1.gif" width=13></td>
631<td><font class="submenutext">
632';
633 continue;
634 }
635 $s .= '
636<table border="0" cellspacing="0" cellpadding="0">
637<tr valign="top">
638 <td width="7"><img src="/bitrix/images/admin/arr_right'.($menu["WARNING"]<>""? "_red":"").'.gif" alt="" width="7" height="7" border="0" vspace="4"></td>
639 <td class="submenutext">&nbsp;</td>
640 <td><font class="submenutext"><a class="submenutext" title="'.$menu["TITLE"].'" href="'.$menu["LINK"].'" '.$menu["LINK_PARAM"].'>'.$menu["TEXT"].'</a>'.$menu["TEXT_PARAM"].'</font></td>
641</tr>
642</table>
643';
644}
645$s .= '
646</font></td>
647</tr>
648</table>
649<td width="6" background=/bitrix/images/admin/mn_rline.gif><img height=1 alt="" src="/bitrix/images/1.gif" width=1></td></tr>
650<tr>
651<td width="6"><img height=6 alt="" src="/bitrix/images/admin/mn_lbc.gif" width=6></td>
652<td background=/bitrix/images/admin/mn_bline.gif><img height=1 alt="" src="/bitrix/images/1.gif" width=1></td>
653<td width="6"><img height=6 alt="" src="/bitrix/images/admin/mn_rbc.gif" width=6></td></tr>
654</table>
655';
656return $s;
657}
658
659function InitSorting($Path=false, $sByVar="by", $sOrderVar="order")
660{
661 global $APPLICATION, $$sByVar, $$sOrderVar;
662
663 if($Path===false)
664 $Path = $APPLICATION->GetCurPage();
665
666 $md5Path = md5($Path);
667
668 if ($$sByVar <> '')
669 Application::getInstance()->getSession()["SESS_SORT_BY"][$md5Path] = $$sByVar;
670 else
671 $$sByVar = Application::getInstance()->getSession()["SESS_SORT_BY"][$md5Path] ?? '';
672
673 if($$sOrderVar <> '')
674 Application::getInstance()->getSession()["SESS_SORT_ORDER"][$md5Path] = $$sOrderVar;
675 else
676 $$sOrderVar = Application::getInstance()->getSession()["SESS_SORT_ORDER"][$md5Path] ?? '';
677
678 $$sByVar = strtolower($$sByVar);
679 $$sOrderVar = strtolower($$sOrderVar);
680}
681
682function SortingEx($By, $Path = false, $sByVar="by", $sOrderVar="order", $Anchor="nav_start")
683{
684 global $APPLICATION;
685
686 $sImgDown = "<img src=\"".BX_ROOT."/images/icons/up.gif\" width=\"15\" height=\"15\" border=\"0\" alt=\"".GetMessage("ASC_ORDER")."\">";
687 $sImgUp = "<img src=\"".BX_ROOT."/images/icons/down.gif\" width=\"15\" height=\"15\" border=\"0\" alt=\"".GetMessage("DESC_ORDER")."\">";
688
689 global $$sByVar, $$sOrderVar;
690 $by=$$sByVar;
691 $order=$$sOrderVar;
692
693 if(mb_strtoupper($By) == mb_strtoupper($by))
694 {
695 if(mb_strtoupper($order) == "DESC")
696 $sImgUp = "<img src=\"".BX_ROOT."/images/icons/down-$$$.gif\" width=\"15\" height=\"15\" border=\"0\" alt=\"".GetMessage("DESC_ORDER")."\">";
697 else
698 $sImgDown = "<img src=\"".BX_ROOT."/images/icons/up-$$$.gif\" width=\"15\" height=\"15\" border=\"0\" alt=\"".GetMessage("ASC_ORDER")."\">";
699 }
700
701 //Если путь не задан, то будем брать текущий со всеми переменными
702 if($Path===false)
703 $Path = $APPLICATION->GetCurUri();
704
705 //Если нет переменных, то надо добавлять параметры через ?
706 $found = mb_strpos($Path, "?");
707 if ($found === false) $strAdd2URL = "?";
708 else $strAdd2URL = "&";
709
710 $Path = preg_replace("/([?&])".$sByVar."=[^&]*[&]*/i", "\\1", $Path);
711 $Path = preg_replace("/([?&])".$sOrderVar."=[^&]*[&]*/i", "\\1", $Path);
712
713 $strTest = mb_substr($Path, mb_strlen($Path) - 1);
714 if($strTest=="&" OR $strTest == "?")
715 $strAdd2URL="";
716
717 return "<nobr><a href=\"".htmlspecialcharsbx($Path.$strAdd2URL.$sByVar."=".$By."&".$sOrderVar."=asc#".$Anchor)."\">".$sImgDown."</a>".
718 "<a href=\"".htmlspecialcharsbx($Path.$strAdd2URL.$sByVar."=".$By."&".$sOrderVar."=desc#".$Anchor)."\">".$sImgUp."</a></nobr>";
719}
const BX_ROOT
Определения bx_root.php:3
global $APPLICATION
Определения include.php:80
change_password_forgot_link login popup forget pas AUTH_GOTO_FORGOT_FORM login btn wrap change_password_button login popup link login popup return auth javascript
Определения change_password.php:57
Определения filterquery.php:261
$str
Определения commerceml2.php:63
$f
Определения component_props.php:52
$arr
Определения file_new.php:624
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
bx_acc_lim_group_list limitGroupList[] multiple<?=$group[ 'ID']?> ID selected margin top
Определения file_new.php:657
$res
Определения filter_act.php:7
CheckFilterDates($date1, $date2, &$date1_wrong, &$date2_wrong, &$date2_less_date1)
Определения filter_tools.php:7
ShowExactMatchCheckbox($name, $title=false)
Определения filter_tools.php:294
ShowAddFavorite($filterName=false, $btnName="set_filter", $module="statistic", $alt=false)
Определения filter_tools.php:324
ResetFilterLogic($FilterLogic="FILTER_logic")
Определения filter_tools.php:342
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterHiddens($var="filter_", $button=array("filter"=> "Y", "set_filter"=> "Y"))
Определения filter_tools.php:147
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
DelFilter($arName)
Определения filter_tools.php:135
ShowLogicRadioBtn($FilterLogic="FILTER_logic")
Определения filter_tools.php:368
GetFilterStr($arr, $button="set_filter")
Определения filter_tools.php:269
IsFiltered($strSqlSearch)
Определения filter_tools.php:337
GetUrlFromArray($arr)
Определения filter_tools.php:302
InitFilter($arName)
Определения filter_tools.php:117
$bFilterScriptShown
Определения filter_tools.php:430
BeginFilter($sID, $bFilterSet, $bShowStatus=true)
Определения filter_tools.php:432
GetFilterParams($var="filter_", $bDoHtmlEncode=true, $button=array("filter"=> "Y", "set_filter"=> "Y"))
Определения filter_tools.php:209
ShowFilterLogicHelp()
Определения filter_tools.php:349
InitFilterEx($arName, $varName, $action="set", $session=true, $FilterLogic="FILTER_logic")
Определения filter_tools.php:20
$sFilterID
Определения filter_tools.php:431
DelFilterEx($arName, $varName, $session=true, $FilterLogic="FILTER_logic")
Определения filter_tools.php:93
$query
Определения get_search.php:11
$strError
Определения options_user_settings.php:4
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
GetPagePath($page=false, $get_index_page=null)
Определения tools.php:3139
InputType($strType, $strName, $strValue, $strCmp, $strPrintValue=false, $strPrint="", $field1="", $strId="")
Определения tools.php:35
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
GetTime($timestamp, $type="SHORT", $site=false, $bSearchInSitesOnly=false)
Определения tools.php:1890
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
CheckDateTime($datetime, $format=false)
Определения tools.php:398
$name
Определения menu_edit.php:35
$order
Определения payment.php:8
$var
Определения payment.php:63
$direction
Определения prolog_auth_admin.php:25
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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
else $a
Определения template.php:137
$title
Определения pdf.php:123
$val
Определения options.php:1793
$error
Определения subscription_card_product.php:20
$action
Определения file_dialog.php:21
$n
Определения update_log.php:107
$url
Определения iframe.php:7
adm detail iblock types adm detail iblock list tr_SITE_ID display
Определения yandex_setup.php:388