1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
filter_dictionary.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/forum/classes/general/filter_dictionary.php");
4
6{
7 public static function GetList($arOrder = array("ID"=>"ASC"), $arFilter = array(), $bCount = false)
8 {
9 global $DB;
10 $arSqlSearch = array();
11 $strSqlSearch = "";
12 $arSqlOrder = array();
13 $strSqlOrder = "";
14 $arFilter = (is_array($arFilter) ? $arFilter : array());
15
16 foreach ($arFilter as $key => $val)
17 {
19 $key = mb_strtoupper($key_res["FIELD"]);
20 $strNegative = $key_res["NEGATIVE"];
21 $strOperation = $key_res["OPERATION"];
22
23 switch ($key)
24 {
25 case "TYPE":
26 case "TITLE":
27 if ($val == '')
28 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FD.".$key." IS NULL OR LENGTH(FD.".$key.")<=0)";
29 else
30 $arSqlSearch[] = ($strNegative=="Y"?" FD.".$key." IS NULL OR NOT ":"")."(FD.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
31 break;
32 case "ID":
33 if ($strOperation!="IN")
34 {
35 if (intval($val)<=0)
36 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FD.ID IS NULL OR FD.ID<=0)";
37 else
38 $arSqlSearch[] = ($strNegative=="Y"?" FD.ID IS NULL OR NOT ":"")."(FD.ID ".$strOperation." ".intval($val)." )";
39 }
40 else
41 {
42 if (!is_array($val))
43 $val = explode(',', $val);
44 $val_int=array();
45 foreach($val as $v)
46 $val_int[] = intval($v);
47 $val = implode(', ', $val_int);
48 $arSqlSearch[] = ($strNegative=="Y"?" NOT ":"")."(FD.ID IN (".$DB->ForSql($val).") )";
49 }
50 break;
51 }
52 }
53 if (!empty($arSqlSearch))
54 $strSqlSearch = "WHERE (".implode(") AND (", $arSqlSearch).")";
55
56 foreach ($arOrder as $by => $order)
57 {
58 $by = mb_strtoupper($by);
59 $order = mb_strtoupper($order);
60 if ($order!="ASC") $order = "DESC";
61 if ($by == "ID") $arSqlOrder[] = " FD.ID ".$order." ";
62 elseif ($by == "TITLE") $arSqlOrder[] = " FD.TITLE ".$order." ";
63 else
64 {
65 $arSqlOrder[] = " FD.ID ".$order." ";
66 $by = "ID";
67 }
68 }
69 DelDuplicateSort($arSqlOrder);
70 if (!empty($arSqlOrder))
71 $strSqlOrder = " ORDER BY ".implode(", ", $arSqlOrder);
72
73 if ($bCount)
74 {
75 $strSql = "SELECT COUNT(FD.ID) as CNT FROM b_forum_dictionary FD ".$strSqlSearch;
76 $db_res = $DB->Query($strSql);
77 $iCnt = 0;
78 if ($ar_res = $db_res->Fetch())
79 $iCnt = intval($ar_res["CNT"]);
80 return $iCnt;
81 }
82 $strSql = "SELECT FD.ID, FD.TITLE, FD.TYPE FROM b_forum_dictionary FD ".$strSqlSearch.$strSqlOrder;
83 $db_res = $DB->Query($strSql);
84 return $db_res;
85 }
86}
87
89{
90 public static function GetList($arOrder = array("ID"=>"ASC"), $arFilter = array(), $bCount = false)
91 {
92 global $DB;
93 $arSqlSearch = array();
94 $strSqlSearch = "";
95 $arSqlOrder = array();
96 $strSqlOrder = "";
97 $arFilter = (is_array($arFilter) ? $arFilter : array());
98
99 foreach ($arFilter as $key => $val)
100 {
102 $key = mb_strtoupper($key_res["FIELD"]);
103 $strNegative = $key_res["NEGATIVE"];
104 $strOperation = $key_res["OPERATION"];
105
106 switch ($key)
107 {
108 case "LETTER":
109 case "REPLACEMENT":
110 if ($val == '')
111 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FL.".$key." IS NULL OR LENGTH(FL.".$key.")<=0)";
112 else
113 $arSqlSearch[] = ($strNegative=="Y"?" FL.".$key." IS NULL OR NOT ":"")."(FL.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
114 break;
115 case "DICTIONARY_ID":
116 case "ID":
117 if ($strOperation!="IN")
118 {
119 if (intval($val)<=0)
120 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FL.".$key." IS NULL OR FL.".$key."<=0)";
121 else
122 $arSqlSearch[] = ($strNegative=="Y"?" FL.".$key." IS NULL OR NOT ":"")."(FL.".$key." ".$strOperation." ".intval($val)." )";
123 }
124 else
125 {
126 if (!is_array($val))
127 $val = explode(',', $val);
128 $val_int=array();
129 foreach($val as $v)
130 $val_int[] = intval($v);
131 $val = implode(', ', $val_int);
132 $arSqlSearch[] = ($strNegative=="Y"?" NOT ":"")."(FL.".$key." IN (".$DB->ForSql($val).") )";
133 }
134 break;
135 }
136 }
137 if (!empty($arSqlSearch))
138 $strSqlSearch = " AND (".implode(") AND (", $arSqlSearch).") ";
139
140 foreach ($arOrder as $by=>$order)
141 {
142 $by = mb_strtoupper($by);
143 $order = mb_strtoupper($order);
144 if ($order!="ASC") $order = "DESC";
145 if ($by == "ID") $arSqlOrder[] = " FL.ID ".$order." ";
146 elseif ($by == "TITLE") $arSqlOrder[] = " FD.TITLE ".$order." ";
147 elseif ($by == "LETTER") $arSqlOrder[] = " FL.LETTER ".$order." ";
148 elseif ($by == "REPLACEMENT") $arSqlOrder[] = " FL.REPLACEMENT ".$order." ";
149 else
150 {
151 $arSqlOrder[] = " FL.ID ".$order." ";
152 $by = "ID";
153 }
154 }
155 DelDuplicateSort($arSqlOrder);
156 if (!empty($arSqlOrder))
157 $strSqlOrder = " ORDER BY ".implode(") AND (", $arSqlOrder);
158
159 if ($bCount)
160 {
161 $strSql = "SELECT COUNT(FD.ID) as CNT ".
162 "FROM b_forum_letter FL, b_forum_dictionary FD ".
163 "WHERE (FL.DICTIONARY_ID = FD.ID) ".
164 $strSqlSearch;
165 $db_res = $DB->Query($strSql);
166 $iCnt = 0;
167 if ($ar_res = $db_res->Fetch())
168 $iCnt = intval($ar_res["CNT"]);
169 return $iCnt;
170 }
171 $strSql =
172 "SELECT FL.ID, FL.LETTER, FL.REPLACEMENT, FL.DICTIONARY_ID, FD.TITLE ".
173 "FROM b_forum_letter FL, b_forum_dictionary FD ".
174 "WHERE (FL.DICTIONARY_ID = FD.ID) ".
175 $strSqlSearch.
176 $strSqlOrder;
177 $db_res = $DB->Query($strSql);
178 return $db_res;
179 }
180}
181
183{
184 public static function GetList($arOrder = array("ID"=>"ASC"), $arFilter = array(), $bCount = false)
185 {
186 global $DB;
187 $arSqlSearch = array();
188 $strSqlSearch = "";
189 $arSqlOrder = array();
190 $strSqlOrder = "";
191 $arFilter = (is_array($arFilter) ? $arFilter : array());
192
193 foreach ($arFilter as $key => $val)
194 {
196 $key = mb_strtoupper($key_res["FIELD"]);
197 $strNegative = $key_res["NEGATIVE"];
198 $strOperation = $key_res["OPERATION"];
199 switch ($key)
200 {
201 case "WORDS":
202 case "USE_IT":
203 case "PATTERN":
204 case "REPLACEMENT":
205 case "DESCRIPTION":
206 case "PATTERN_CREATE":
207 if ($val == '')
208 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FM.".$key." IS NULL OR LENGTH(FM.".$key.")<=0)";
209 else
210 $arSqlSearch[] = ($strNegative=="Y"?" FM.".$key." IS NULL OR NOT ":"")."(FM.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
211 break;
212 case "ID":
213 case "DICTIONARY_ID":
214 if (intval($val)<=0)
215 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FM.".$key." IS NULL OR FM.".$key."<=0)";
216 else
217 {
218 if ($strOperation!="IN")
219 {
220 $arSqlSearch[] = ($strNegative=="Y"?" FM.".$key." IS NULL OR NOT ":"")."(FM.".$key." ".$strOperation." ".intval($val)." )";
221 }
222 else
223 {
224 if (!is_array($val))
225 $val = explode(',', $val);
226 $val_int=array();
227 foreach($val as $v)
228 $val_int[] = intval($v);
229 $val = implode(', ', $val_int);
230 $arSqlSearch[] = ($strNegative=="Y"?" NOT ":"")."(FM.".$key." IN (".$DB->ForSql($val).") )";
231 }
232 }
233 break;
234 }
235 }
236 if (!empty($arSqlSearch))
237 $strSqlSearch = " WHERE (".implode(") AND (", $arSqlSearch).")";
238
239 foreach ($arOrder as $by=>$order)
240 {
241 $by = mb_strtoupper($by);
242 $order = mb_strtoupper($order);
243 if ($order!="ASC") $order = "DESC";
244 if ($by == "ID") $arSqlOrder[] = " FM.ID ".$order." ";
245 elseif ($by == "WORDS") $arSqlOrder[] = " FM.WORDS ".$order." ";
246 elseif ($by == "PATTERN") $arSqlOrder[] = " FM.PATTERN ".$order." ";
247 elseif ($by == "REPLACEMENT") $arSqlOrder[] = " FM.REPLACEMENT ".$order." ";
248 elseif ($by == "DESCRIPTION") $arSqlOrder[] = " FM.DESCRIPTION ".$order." ";
249 elseif ($by == "USE_IT") $arSqlOrder[] = " FM.USE_IT ".$order." ";
250 else
251 {
252 $arSqlOrder[] = " FM.ID ".$order." ";
253 $by = "ID";
254 }
255 }
256 DelDuplicateSort($arSqlOrder);
257 if (!empty($arSqlOrder))
258 $strSqlOrder = " ORDER BY ".implode(", ", $arSqlOrder);
259
260 if ($bCount)
261 {
262 $strSql =
263 "SELECT COUNT(FM.ID) as CNT ".
264 "FROM b_forum_filter FM ".
265 $strSqlSearch;
266 $db_res = $DB->Query($strSql);
267 $iCnt = 0;
268 if ($ar_res = $db_res->Fetch())
269 $iCnt = intval($ar_res["CNT"]);
270 return $iCnt;
271 }
272 $strSql = "SELECT FM.ID, FM.DICTIONARY_ID, FM.WORDS, FM.PATTERN, FM.REPLACEMENT, FM.DESCRIPTION, FM.USE_IT, FM.PATTERN_CREATE ".
273 "FROM b_forum_filter FM ".
274 $strSqlSearch.
275 $strSqlOrder;
276
277 $db_res = $DB->Query($strSql);
278 return $db_res;
279 }
280}
$db_res
Определения options_user_settings.php:8
$ar_res
Определения options_user_settings_set.php:16
static GetFilterOperation($key)
Определения filter_dictionary.php:93
static GetFilterOperation($key)
Определения filter_dictionary.php:403
static GetList($arOrder=array("ID"=>"ASC"), $arFilter=array(), $bCount=false)
Определения filter_dictionary.php:7
static GetList($arOrder=array("ID"=>"ASC"), $arFilter=array(), $bCount=false)
Определения filter_dictionary.php:90
static GetList($arOrder=array("ID"=>"ASC"), $arFilter=array(), $bCount=false)
Определения filter_dictionary.php:184
</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
global $DB
Определения cron_frame.php:29
DelDuplicateSort(&$arSort)
Определения tools.php:2055
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$val
Определения options.php:1793
$arFilter
Определения user_search.php:106