1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
user.php
См. документацию.
1<?php
2require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/forum/classes/general/user.php");
3
5{
6 public static function GetList($arOrder = Array("ID"=>"ASC"), $arFilter = Array(), $arAddParams = array())
7 {
8 global $DB;
9 $sqlHelper = \Bitrix\Main\Application::getConnection()->getSqlHelper();
10 $arSqlSearch = array();
11 $arSqlOrder = array();
12 $strSqlSearch = "";
13 $strSqlOrder = "";
14 $arFilter = (is_array($arFilter) ? $arFilter : array());
15 $arAddParams = is_array($arAddParams) ? $arAddParams : [];
16 if (isset($arAddParams["nameTemplate"]))
17 {
18 $arAddParams["sNameTemplate"] = $arAddParams["nameTemplate"];
19 unset($arAddParams["nameTemplate"]);
20 }
21
22 if (isset($arFilter['PERSONAL_BIRTHDAY_DATE']))
23 {
24 $subQuery = "SELECT U.ID FROM b_user U WHERE ";
25 $key_res = CForumNew::GetFilterOperation($arFilter['PERSONAL_BIRTHDAY_DATE']);
26 $key = mb_strtoupper($key_res["FIELD"]);
27 $val = $arFilter['PERSONAL_BIRTHDAY_DATE'];
28 $strNegative = $key_res["NEGATIVE"];
29 $strOperation = $key_res["OPERATION"];
30 $subQuery .= ( $strNegative === "Y"
31 ? " U.PERSONAL_BIRTHDAY IS NULL OR NOT "
32 : " U.PERSONAL_BIRTHDAY IS NOT NULL AND ")
33 . "(" . $sqlHelper->formatDate('MM-DD', 'U.PERSONAL_BIRTHDAY')
34 . $strOperation . " '".$DB->ForSql($val)."')";
35 $db_sub_res = $DB->Query($subQuery);
36 $arUserID = array();
37 if ($db_sub_res)
38 {
39 while($ar_sub_res = $db_sub_res->Fetch())
40 $arUserID[] = $ar_sub_res['ID'];
41 }
42 if (sizeof($arUserID) > 0)
43 {
44 if (sizeof($arUserID) > 50)
45 $arUserID = array_slice($arUserID, 0, 50);
46
47 unset($arFilter['PERSONAL_BIRTHDAY_DATE']);
48 $arFilter['@USER_ID'] = $arUserID;
49 }
50 }
51
52 foreach ($arFilter as $key => $val)
53 {
55 $key = mb_strtoupper($key_res["FIELD"]);
56 $strNegative = $key_res["NEGATIVE"];
57 $strOperation = $key_res["OPERATION"];
58
59 switch ($key)
60 {
61 case "USER_ID":
62 $userID = intval($val);
63 if (is_array($val) && $strOperation == 'IN')
64 {
65 $userID = array();
66 foreach($val as $valI)
67 $userID[] = intval($valI);
68 $userID = array_unique($userID);
69 if (empty($userID))
70 $val = $userID = 0;
71 else
72 $userID = '(' . implode(', ', $userID). ')';
73 }
74 if (!is_array($val) && intval($userID)<=0)
75 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.ID IS NULL OR U.ID<=0)";
76 else
77 $arSqlSearch[] = ($strNegative=="Y"?" U.ID IS NULL OR NOT ":"")."(U.ID ".$strOperation." ".$userID." )";
78 break;
79 case "ID":
80 case "RANK_ID":
81 case "NUM_POSTS":
82 case "AVATAR":
83 if (intval($val)<=0)
84 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.".$key." IS NULL OR FU.".$key."<=0)";
85 else
86 $arSqlSearch[] = ($strNegative=="Y"?" FU.".$key." IS NULL OR NOT ":"")."(FU.".$key." ".$strOperation." ".intval($val)." )";
87 break;
88 case "SHOW_NAME":
89 case "HIDE_FROM_ONLINE":
90 case "SUBSC_GROUP_MESSAGE":
91 case "SUBSC_GET_MY_MESSAGE":
92 case "ALLOW_POST":
93 if ($val == '')
94 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.".$key." IS NULL OR LENGTH(FU.".$key.")<=0)";
95 else
96 $arSqlSearch[] = ($strNegative=="Y"?" FU.".$key." IS NULL OR NOT ":"")."(FU.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
97 break;
98 case "ACTIVE":
99 if ($val == '')
100 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.".$key." IS NULL OR LEN(U.".$key.")<=0)";
101 else
102 $arSqlSearch[] = ($strNegative=="Y"?" U.".$key." IS NULL OR NOT ":"")."(U.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
103 break;
104 case "PERSONAL_BIRTHDATE":
105 if ($val == '')
106 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.PERSONAL_BIRTHDATE IS NULL)";
107 else
108 $arSqlSearch[] = ($strNegative=="Y"?" U.PERSONAL_BIRTHDATE IS NULL OR NOT ":"")."(U.PERSONAL_BIRTHDATE ".$strOperation." '".$DB->ForSql($val)."')";
109 break;
110 case "PERSONAL_BIRTHDAY":
111 if($val == '')
112 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.PERSONAL_BIRTHDAY IS NULL)";
113 else
114 $arSqlSearch[] = ($strNegative=="Y"?" U.PERSONAL_BIRTHDAY IS NULL OR NOT ":"")."(U.PERSONAL_BIRTHDAY ".$strOperation." ".$DB->CharToDateFunction($DB->ForSql($val), "SHORT").")";
115 break;
116 case "PERSONAL_BIRTHDAY_DATE":
117 $arSqlSearch[] = ($strNegative=="Y"?" U.PERSONAL_BIRTHDAY IS NULL OR NOT ":"")."(" . $sqlHelper->formatDate('MM-DD', 'U.PERSONAL_BIRTHDAY') . $strOperation." '".$DB->ForSql($val)."')";
118 break;
119 case "LAST_VISIT":
120 if($val == '')
121 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.LAST_VISIT IS NULL)";
122 else
123 $arSqlSearch[] = ($strNegative=="Y"?" FU.LAST_VISIT IS NULL OR NOT ":"")."(FU.LAST_VISIT ".$strOperation." ".$DB->CharToDateFunction($DB->ForSql($val), "FULL").")";
124 break;
125 case "SHOW_ABC":
126 $val = trim($val);
127 if (!empty($val) && $val != "Y")
128 {
129 $arSqlSearch[] =
130 "(
131 (
132 FU.SHOW_NAME = 'Y'
133 AND
134 LENGTH(TRIM(CONCAT_WS('',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."))) > 0
135 AND
136 (REPLACE(CONCAT_WS(' ',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."), ' ', ' ') LIKE '%".$DB->ForSql($val)."%')
137 )
138 OR
139 (
140 (
141 FU.SHOW_NAME != 'Y'
142 OR
143 FU.SHOW_NAME IS NULL
144 OR
145 (
146 FU.SHOW_NAME = 'Y'
147 AND
148 LENGTH(TRIM(CONCAT_WS('',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."))) <= 0
149 )
150 )
151 AND
152 (
153 U.LOGIN LIKE '%".$DB->ForSql($val)."%'
154 )
155 )
156 )";
157 }
158 break;
159 }
160 }
161 if (count($arSqlSearch) > 0)
162 $strSqlSearch = " AND (".implode(") AND (", $arSqlSearch).") ";
163
164 foreach ($arOrder as $by=>$order)
165 {
166 $by = mb_strtoupper($by);
167 $order = mb_strtoupper($order);
168
169 if ($order!="ASC") $order = "DESC";
170
171 if ($by == "USER_ID") $arSqlOrder[] = " U.ID ".$order." ";
172 elseif ($by == "SHOW_NAME") $arSqlOrder[] = " FU.SHOW_NAME ".$order." ";
173 elseif ($by == "HIDE_FROM_ONLINE") $arSqlOrder[] = " FU.HIDE_FROM_ONLINE ".$order." ";
174 elseif ($by == "SUBSC_GROUP_MESSAGE") $arSqlOrder[] = " FU.SUBSC_GROUP_MESSAGE ".$order." ";
175 elseif ($by == "SUBSC_GET_MY_MESSAGE") $arSqlOrder[] = " FU.SUBSC_GET_MY_MESSAGE ".$order." ";
176 elseif ($by == "NUM_POSTS") $arSqlOrder[] = " FU.NUM_POSTS ".$order." ";
177 elseif ($by == "LAST_POST") $arSqlOrder[] = " FU.LAST_POST ".$order." ";
178 elseif ($by == "POINTS") $arSqlOrder[] = " FU.POINTS ".$order." ";
179 elseif ($by == "NAME") $arSqlOrder[] = " U.NAME ".$order." ";
180 elseif ($by == "LAST_NAME") $arSqlOrder[] = " U.LAST_NAME ".$order." ";
181 elseif ($by == "LOGIN") $arSqlOrder[] = " U.LOGIN ".$order." ";
182 elseif ($by == "LAST_VISIT") $arSqlOrder[] = " FU.LAST_VISIT ".$order." ";
183 elseif ($by == "DATE_REGISTER") $arSqlOrder[] = " U.DATE_REGISTER ".$order." ";
184 elseif ($by == "SHOW_ABC") $arSqlOrder[] = " SHOW_ABC ".$order." ";
185 else
186 {
187 $arSqlOrder[] = " FU.ID ".$order." ";
188 $by = "ID";
189 }
190 }
191 DelDuplicateSort($arSqlOrder);
192 if (count($arSqlOrder) > 0)
193 $strSqlOrder = " ORDER BY ".implode(", ", $arSqlOrder);
194
195 $strSql =
196 "SELECT FU.ID, U.ID as USER_ID, FU.SHOW_NAME, FU.DESCRIPTION, FU.IP_ADDRESS,
197 FU.REAL_IP_ADDRESS, FU.AVATAR, FU.NUM_POSTS, FU.POINTS as NUM_POINTS,
198 FU.INTERESTS, FU.SUBSC_GROUP_MESSAGE, FU.SUBSC_GET_MY_MESSAGE,
199 FU.LAST_POST, FU.ALLOW_POST, FU.SIGNATURE, FU.RANK_ID,
200 U.EMAIL, U.NAME, U.SECOND_NAME, U.LAST_NAME, U.LOGIN, U.PERSONAL_BIRTHDATE,
201 ".$DB->DateToCharFunction("FU.DATE_REG", "SHORT")." as DATE_REG,
202 ".$DB->DateToCharFunction("FU.LAST_VISIT", "FULL")." as LAST_VISIT,
203 ".$DB->DateToCharFunction("FU.LAST_VISIT", "SHORT")." as LAST_VISIT_SHORT,
204 ".$DB->DateToCharFunction("U.DATE_REGISTER", "SHORT")." as DATE_REGISTER_SHORT,
205 U.PERSONAL_ICQ, U.PERSONAL_WWW, U.PERSONAL_PROFESSION, U.DATE_REGISTER,
206 U.PERSONAL_CITY, U.PERSONAL_COUNTRY, U.EXTERNAL_AUTH_ID, U.PERSONAL_PHOTO,
207 U.PERSONAL_GENDER, FU.POINTS, FU.HIDE_FROM_ONLINE,
208 ".$DB->DateToCharFunction("U.PERSONAL_BIRTHDAY", "SHORT")." as PERSONAL_BIRTHDAY ".
209 (array_key_exists("SHOW_ABC", $arFilter) || array_key_exists("sNameTemplate", $arAddParams) ?
210 ", \n".self::GetFormattedNameFieldsForSelect(
211 array_merge(
212 $arAddParams,
213 array(
214 "sUserTablePrefix" => "U.",
215 "sForumUserTablePrefix" => "FU.",
216 "sFieldName" => "SHOW_ABC")
217 ),
218 false
219 )
220 :
221 ""
222 ).
223 ((isset($arFilter['USER_ID']) || isset($arFilter['@USER_ID'])) ?
224 " FROM b_user U LEFT JOIN b_forum_user FU ON (FU.USER_ID = U.ID)"
225 :
226 " FROM b_forum_user FU LEFT JOIN b_user U ON (FU.USER_ID = U.ID)"
227 ).
228 " WHERE 1 = 1 ".$strSqlSearch." \n".
229 $strSqlOrder;
230
231 if (!empty($arAddParams["nTopCount"]))
232 $strSql .= " LIMIT 0," . intval($arAddParams["nTopCount"]);
233 if (isset($arAddParams["bDescPageNumbering"]) && empty($arAddParams["nTopCount"]))
234 {
235 $iCnt = 0;
236 $strSqlCount =
237 "SELECT COUNT('x') as CNT ".
238 ((isset($arFilter['USER_ID']) || isset($arFilter['@USER_ID'])) ?
239 " FROM b_user U LEFT JOIN b_forum_user FU ON (FU.USER_ID = U.ID)"
240 :
241 " FROM b_forum_user FU LEFT JOIN b_user U ON (FU.USER_ID = U.ID)"
242 ).
243 " WHERE 1 = 1 ".$strSqlSearch;
244 $db_res = $DB->Query($strSqlCount);
245 if ($db_res && ($res = $db_res->Fetch()))
246 $iCnt = $res["CNT"];
247
248 $db_res = new CDBResult();
249 $db_res->NavQuery($strSql, $iCnt, $arAddParams);
250 }
251 else
252 {
253 $db_res = $DB->Query($strSql);
254 }
255 return $db_res;
256 }
257
258 public static function GetListEx($arOrder = Array("ID"=>"ASC"), $arFilter = Array())
259 {
260 global $DB;
261 $sqlHelper = \Bitrix\Main\Application::getConnection()->getSqlHelper();
262 $arSqlSearch = array();
263 $arSqlSelect = array();
264 $arSqlFrom = array();
265 $arSqlGroup = array();
266 $arSqlOrder = array();
267 $arSql = array();
268 $strSqlSearch = "";
269 $strSqlSelect = "";
270 $strSqlFrom = "";
271 $strSqlGroup = "";
272 $strSqlOrder = "";
273 $strSql = "";
274 $tmp = array();
275 $arFilter = (is_array($arFilter) ? $arFilter : array());
276
277 $arMainUserFields = array("LOGIN"=>"S", "NAME"=>"S", "LAST_NAME"=>"S", "SECOND_NAME"=>"S",
278 "PERSONAL_PROFESSION"=>"S", "PERSONAL_WWW"=>"S", "PERSONAL_ICQ"=>"S", "PERSONAL_GENDER"=>"E",
279 "PERSONAL_PHONE"=>"S", "PERSONAL_FAX"=>"S", "PERSONAL_MOBILE"=>"S", "PERSONAL_PAGER"=>"S",
280 "PERSONAL_STREET"=>"S", "PERSONAL_MAILBOX"=>"S", "PERSONAL_CITY"=>"S", "PERSONAL_STATE"=>"S",
281 "PERSONAL_ZIP"=>"S", "PERSONAL_COUNTRY"=>"I", "EXTERNAL_AUTH_ID"=>"S", "PERSONAL_NOTES"=>"S", "WORK_COMPANY"=>"S",
282 "WORK_DEPARTMENT"=>"S", "WORK_POSITION"=>"S", "WORK_WWW"=>"S", "WORK_PHONE"=>"S", "WORK_FAX"=>"S",
283 "WORK_PAGER"=>"S", "WORK_STREET"=>"S", "WORK_MAILBOX"=>"S", "WORK_CITY"=>"S", "WORK_STATE"=>"S",
284 "WORK_ZIP"=>"S", "WORK_COUNTRY"=>"I", "WORK_PROFILE"=>"S", "WORK_NOTES"=>"S");
285 $arSqlSelectConst = array(
286 "FU.ID" => "FU.ID",
287 "USER_ID" => "U.ID",
288 "FU.SHOW_NAME" => "FU.SHOW_NAME",
289 "FU.DESCRIPTION" => "FU.DESCRIPTION",
290 "FU.IP_ADDRESS" => "FU.IP_ADDRESS",
291 "FU.REAL_IP_ADDRESS" => "FU.REAL_IP_ADDRESS",
292 "FU.AVATAR" => "FU.AVATAR",
293 "FU.NUM_POSTS" => "FU.NUM_POSTS",
294 "NUM_POINTS" => "FU.POINTS",
295 "FU.INTERESTS" => "FU.INTERESTS",
296 "FU.SUBSC_GROUP_MESSAGE" => "FU.SUBSC_GROUP_MESSAGE",
297 "FU.SUBSC_GET_MY_MESSAGE" => "FU.SUBSC_GET_MY_MESSAGE",
298 "FU.LAST_POST" => "FU.LAST_POST",
299 "FU.ALLOW_POST" => "FU.ALLOW_POST",
300 "FU.SIGNATURE" => "FU.SIGNATURE",
301 "FU.RANK_ID" => "FU.RANK_ID",
302 "FU.POINTS" => "FU.POINTS",
303 "FU.HIDE_FROM_ONLINE" => "FU.HIDE_FROM_ONLINE",
304 "U.DATE_REGISTER" => "U.DATE_REGISTER",
305 "U.EMAIL" => "U.EMAIL",
306 "U.NAME" => "U.NAME",
307 "U.SECOND_NAME" => "U.SECOND_NAME",
308 "U.LAST_NAME" => "U.LAST_NAME",
309 "U.LOGIN" => "U.LOGIN",
310 "U.PERSONAL_BIRTHDATE" => "U.PERSONAL_BIRTHDATE",
311 "U.PERSONAL_ICQ" => "U.PERSONAL_ICQ",
312 "U.PERSONAL_WWW" => "U.PERSONAL_WWW",
313 "U.PERSONAL_PROFESSION" => "U.PERSONAL_PROFESSION",
314 "U.PERSONAL_CITY" => "U.PERSONAL_CITY",
315 "U.PERSONAL_COUNTRY" => "U.PERSONAL_COUNTRY",
316 "U.EXTERNAL_AUTH_ID" => "U.EXTERNAL_AUTH_ID",
317 "U.PERSONAL_PHOTO" => "U.PERSONAL_PHOTO",
318 "U.PERSONAL_GENDER" => "U.PERSONAL_GENDER",
319 "DATE_REG" => $DB->DateToCharFunction("FU.DATE_REG", "SHORT"),
320 "LAST_VISIT" => $DB->DateToCharFunction("FU.LAST_VISIT", "FULL"),
321 "PERSONAL_BIRTHDAY" => $DB->DateToCharFunction("U.PERSONAL_BIRTHDAY", "SHORT"),
322 "U.WORK_POSITION" => "U.WORK_POSITION",
323 "U.WORK_COMPANY" => "U.WORK_COMPANY"
324 );
325
326 foreach ($arFilter as $key => $val)
327 {
329 $key = mb_strtoupper($key_res["FIELD"]);
330 $strNegative = $key_res["NEGATIVE"];
331 $strOperation = $key_res["OPERATION"];
332
333 switch ($key)
334 {
335 case "USER_ID":
336 if (intval($val)<=0)
337 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.ID IS NULL OR U.ID<=0)";
338 else
339 $arSqlSearch[] = ($strNegative=="Y"?" U.ID IS NULL OR NOT ":"")."(U.ID ".$strOperation." ".intval($val)." )";
340 break;
341 case "ID":
342 case "RANK_ID":
343 case "NUM_POSTS":
344 if (intval($val)<=0)
345 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.".$key." IS NULL OR FU.".$key."<=0)";
346 else
347 $arSqlSearch[] = ($strNegative=="Y"?" FU.".$key." IS NULL OR NOT ":"")."(FU.".$key." ".$strOperation." ".intval($val)." )";
348 break;
349 case "SHOW_NAME":
350 case "HIDE_FROM_ONLINE":
351 case "SUBSC_GROUP_MESSAGE":
352 case "SUBSC_GET_MY_MESSAGE":
353 case "ALLOW_POST":
354 if ($val == '')
355 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.".$key." IS NULL OR LENGTH(FU.".$key.")<=0)";
356 else
357 $arSqlSearch[] = ($strNegative=="Y"?" FU.".$key." IS NULL OR NOT ":"")."(FU.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
358 break;
359 case "ACTIVE":
360 if ($val == '')
361 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.".$key." IS NULL OR LEN(U.".$key.")<=0)";
362 else
363 $arSqlSearch[] = ($strNegative=="Y"?" U.".$key." IS NULL OR NOT ":"")."(U.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
364 break;
365 case "PERSONAL_BIRTHDATE":
366 if ($val == '')
367 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.PERSONAL_BIRTHDATE IS NULL)";
368 else
369 $arSqlSearch[] = ($strNegative=="Y"?" U.PERSONAL_BIRTHDATE IS NULL OR NOT ":"")."(U.PERSONAL_BIRTHDATE ".$strOperation." '".$DB->ForSql($val)."')";
370 break;
371 case "PERSONAL_BIRTHDAY":
372 if($val == '')
373 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(U.PERSONAL_BIRTHDAY IS NULL)";
374 else
375 $arSqlSearch[] = ($strNegative=="Y"?" U.PERSONAL_BIRTHDAY IS NULL OR NOT ":"")."(U.PERSONAL_BIRTHDAY ".$strOperation." ".$DB->CharToDateFunction($DB->ForSql($val), "SHORT").")";
376 break;
377 case "PERSONAL_BIRTHDAY_DATE":
378 $arSqlSearch[] = ($strNegative=="Y"?" U.PERSONAL_BIRTHDAY IS NULL OR NOT ":"")."( ". $sqlHelper->formatDate('MM-DD', 'U.PERSONAL_BIRTHDAY') .") ".$strOperation." '".$DB->ForSql($val)."')";
379 break;
380 case "LAST_VISIT":
381 if($val == '')
382 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.LAST_VISIT IS NULL)";
383 else
384 $arSqlSearch[] = ($strNegative=="Y"?" FU.LAST_VISIT IS NULL OR NOT ":"")."(FU.LAST_VISIT ".$strOperation." ".$DB->CharToDateFunction($DB->ForSql($val), "SHORT").")";
385 break;
386 case "LOGIN":
387 case "EMAIL":
388 $arSqlSearch[] = GetFilterQuery("U.".$key, $val);
389 break;
390 case "NAME":
391 $arSqlSearch[] = GetFilterQuery("U.NAME, U.LAST_NAME, U.SECOND_NAME", $val);
392 break;
393 case"SUBSC_NEW_TOPIC_ONLY":
394 $key = "NEW_TOPIC_ONLY";
395 $arSqlFrom["FS"] = "INNER JOIN b_forum_subscribe FS ON (FU.USER_ID = FS.USER_ID)";
396 if ($val == '')
397 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FS.".$key." IS NULL OR LENGTH(FS.".$key.")<=0)";
398 else
399 $arSqlSearch[] = ($strNegative=="Y"?" FS.".$key." IS NULL OR NOT ":"")."(FS.".$key." ".$strOperation." '".$DB->ForSql($val)."' )";
400 break;
401 case "SUBSC_START_DATE":
402 $key = "START_DATE";
403 $arSqlFrom["FS"] = "INNER JOIN b_forum_subscribe FS ON (FU.USER_ID = FS.USER_ID)";
404 if($val == '')
405 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FS.".$key." IS NULL)";
406 else
407 $arSqlSearch[] = ($strNegative=="Y"?" FS.".$key." IS NULL OR NOT ":"")."(FS.".$key." ".$strOperation." ".$DB->CharToDateFunction($DB->ForSql($val), "SHORT").")";
408 break;
409 case "SUBSC_FORUM_ID":
410 case "SUBSC_TOPIC_ID":
411 case "SUBSC":
412 $arSqlFrom["FS"] = "INNER JOIN b_forum_subscribe FS ON (FU.USER_ID = FS.USER_ID)";
413 unset($arSqlSelectConst["FU.INTERESTS"]);
414 $arSqlSelect = $arSqlSelectConst;
415 $arSqlSelect["SUBSC_COUNT"] = "COUNT(FS.ID)";
416 $arSqlSelect["SUBSC_START_DATE"] = $DB->DateToCharFunction("MIN(FS.START_DATE)", "FULL");
417 $arSqlGroup = array_merge($arSqlSelectConst, $arSqlGroup);
418 if ($key != "SUBSC")
419 {
420 $key = mb_substr($key, mb_strlen("SUBSC_"));
421 if (intval($val)<=0)
422 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FS.".$key." IS NULL OR FS.".$key."<=0)";
423 else
424 $arSqlSearch[] = ($strNegative=="Y"?" FS.".$key." IS NULL OR NOT ":"")."(FS.".$key." ".$strOperation." ".intval($val)." )";
425 }
426 break;
427 default:
428 if (mb_substr($key, 0, mb_strlen("USER_")) == "USER_")
429 {
430 $strUserKey = mb_substr($key, mb_strlen("USER_"));
431 if (array_key_exists($strUserKey, $arMainUserFields))
432 {
433 if ($arMainUserFields[$strUserKey]=="I")
434 $arSqlSearch[] = ($strNegative=="Y"?" U.".$strUserKey." IS NULL OR NOT ":"")."(U.".$strUserKey." ".$strOperation." ".intval($val)." )";
435 elseif ($arMainUserFields[$strUserKey]=="E")
436 $arSqlSearch[] = ($strNegative=="Y"?" U.".$strUserKey." IS NULL OR NOT ":"")."(U.".$strUserKey." ".$strOperation." '".$DB->ForSql($val)."' )";
437 else
438 $arSqlSearch[] = GetFilterQuery("U.".$strUserKey, $val);
439 }
440 }
441 }
442 }
443 if (count($arSqlSearch) > 0)
444 $strSqlSearch = " AND (".implode(") AND (", $arSqlSearch).") ";
445 if (count($arSqlSelect) <= 0)
446 $arSqlSelect = $arSqlSelectConst;
447 foreach ($arSqlSelect as $key => $val)
448 {
449 if ($val != $key)
450 $tmp[] = $val." AS ".$key;
451 else
452 $tmp[] = $val;
453 }
454 $strSqlSelect = implode(", ", $tmp);
455 if (count($arSqlFrom) > 0)
456 $strSqlFrom = implode(" ", $arSqlFrom);
457 if (count($arSqlGroup) > 0)
458 $strSqlGroup = " GROUP BY ".implode(", ", $arSqlGroup);
459
460 foreach ($arOrder as $by=>$order)
461 {
462 $by = mb_strtoupper($by);
463 $order = mb_strtoupper($order);
464 if ($order!="ASC")
465 $order = "DESC";
466
467 if ($by == "USER_ID") $arSqlOrder[] = " U.ID ".$order." ";
468 elseif ($by == "SHOW_NAME") $arSqlOrder[] = " FU.SHOW_NAME ".$order." ";
469 elseif ($by == "HIDE_FROM_ONLINE") $arSqlOrder[] = " FU.HIDE_FROM_ONLINE ".$order." ";
470 elseif ($by == "SUBSC_GROUP_MESSAGE") $arSqlOrder[] = " FU.SUBSC_GROUP_MESSAGE ".$order." ";
471 elseif ($by == "SUBSC_GET_MY_MESSAGE") $arSqlOrder[] = " FU.SUBSC_GET_MY_MESSAGE ".$order." ";
472 elseif ($by == "NUM_POSTS") $arSqlOrder[] = " FU.NUM_POSTS ".$order." ";
473 elseif ($by == "LAST_POST") $arSqlOrder[] = " FU.LAST_POST ".$order." ";
474 elseif ($by == "POINTS") $arSqlOrder[] = " FU.POINTS ".$order." ";
475 elseif ($by == "NAME") $arSqlOrder[] = " U.NAME ".$order." ";
476 elseif ($by == "LAST_NAME") $arSqlOrder[] = " U.LAST_NAME ".$order." ";
477 elseif ($by == "EMAIL") $arSqlOrder[] = " U.EMAIL ".$order." ";
478 elseif ($by == "LOGIN") $arSqlOrder[] = " U.LOGIN ".$order." ";
479 elseif ($by == "LAST_VISIT") $arSqlOrder[] = " FU.LAST_VISIT ".$order." ";
480 elseif ($by == "DATE_REGISTER") $arSqlOrder[] = " U.DATE_REGISTER ".$order." ";
481 elseif ($by == "ID") $arSqlOrder[] = " FU.ID ".$order." ";
482 elseif (($by == "SUBSC_COUNT") && array_key_exists("FS", $arSqlFrom)) $arSqlOrder[] = " SUBSC_COUNT ".$order." ";
483 elseif (($by == "SUBSC_START_DATE") && array_key_exists("FS", $arSqlFrom)) $arSqlOrder[] = " FS.START_DATE ".$order." ";
484 elseif (mb_substr($by, 0, mb_strlen("USER_")) == "USER_")
485 {
486 $strUserBy = mb_substr($by, mb_strlen("USER_"));
487 if (array_key_exists($strUserBy, $arMainUserFields))
488 {
489 $arSqlOrder[] = " U.".$strUserBy." ".$order." ";
490 }
491 }
492 else
493 {
494 $arSqlOrder[] = " FU.ID ".$order." ";
495 $by = "ID";
496 }
497 }
498
499 DelDuplicateSort($arSqlOrder);
500 if (count($arSqlOrder) > 0)
501 $strSqlOrder = " ORDER BY ".implode(", ", $arSqlOrder);
502
503 $strSql = "SELECT ".$strSqlSelect."
504 FROM b_forum_user FU
505 INNER JOIN b_user U ON (FU.USER_ID = U.ID)
506 ".$strSqlFrom."
507 WHERE 1 = 1
508 ".$strSqlSearch."
509 ".$strSqlGroup."
510 ".$strSqlOrder;
511 $db_res = $DB->Query($strSql);
512 return $db_res;
513 }
514
515 public static function SearchUser($template, $arAddParams = array())
516 {
517 global $DB;
518 $template = $DB->ForSql(str_replace("*", "%", $template));
519 $arAddParams = (is_array($arAddParams) ? $arAddParams : array($arAddParams));
520 $arAddParams["sNameTemplate"] = (is_set($arAddParams, "nameTemplate") ? $arAddParams["nameTemplate"] : $arAddParams["sNameTemplate"]);
521
522 $strSqlSearch =
523 "(
524 F.SHOW_NAME = 'Y' AND LENGTH(U.NAME) > 0 AND U.NAME LIKE '".$template."'
525 )
526 OR
527 (
528 F.SHOW_NAME = 'Y' AND LENGTH(U.NAME) <= 0
529 AND
530 LENGTH(U.LAST_NAME) > 0 AND U.LAST_NAME LIKE '".$template."'
531 )
532 OR
533 (
534 (
535 F.SHOW_NAME = 'N' OR F.SHOW_NAME = '' OR (F.SHOW_NAME IS NULL)
536 OR
537 (
538 F.SHOW_NAME = 'Y'
539 AND
540 LENGTH(TRIM(CONCAT_WS('',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"]).")))<=0
541 )
542 )
543 AND
544 U.LOGIN LIKE '".$template."'
545 )";
546 if (mb_substr($template, 0, 1) == '%')
547 $strSqlSearch =
548 "(
549 (
550 F.SHOW_NAME = 'Y'
551 AND
552 LENGTH(TRIM(CONCAT_WS('',U.NAME,U.LAST_NAME))) > 0
553 AND
554 REPLACE(CONCAT_WS(' ',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."), ' ', ' ') LIKE '".$template."'
555 )
556 OR
557 (
558 (
559 F.SHOW_NAME = 'N' OR F.SHOW_NAME = '' OR (F.SHOW_NAME IS NULL)
560 OR
561 (
562 F.SHOW_NAME = 'Y'
563 AND
564 LENGTH(TRIM(CONCAT_WS('',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."))) <= 0
565 )
566 )
567 AND
568 U.LOGIN LIKE '".$template."'
569 )
570 )";
571
572 $iCnt = 0;
573 if ((isset($arAddParams["bCount"]) && $arAddParams["bCount"]) || is_set($arAddParams, "bDescPageNumbering"))
574 {
575 $strSql = "SELECT COUNT(U.ID) AS CNT FROM b_user U LEFT JOIN b_forum_user F ON (F.USER_ID = U.ID) WHERE ".$strSqlSearch;
576 $db_res = $DB->Query($strSql);
577 $iCnt = ($db_res && ($res = $db_res->Fetch()) ? intval($res["CNT"]) : 0);
578 if (isset($arAddParams["bCount"]) && $arAddParams["bCount"])
579 return $iCnt;
580 }
581
582 $strSql =
583 "SELECT U.ID, U.NAME, U.SECOND_NAME, U.LAST_NAME, U.LOGIN, F.SHOW_NAME,
584 CASE
585 WHEN (F.SHOW_NAME = 'Y' AND LENGTH(TRIM(CONCAT_WS('',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."))) > 0)
586 THEN TRIM(REPLACE(CONCAT_WS(' ',".self::GetNameFieldsForQuery($arAddParams["sNameTemplate"])."), ' ', ' '))
587 ELSE U.LOGIN
588 END AS SHOW_ABC
589 FROM b_user U
590 LEFT JOIN b_forum_user F ON (F.USER_ID = U.ID)
591 WHERE ".$strSqlSearch."\n"."ORDER BY SHOW_ABC";
592 if (is_set($arAddParams, "bDescPageNumbering")) {
593 $db_res = new CDBResult();
594 $db_res->NavQuery($strSql, $iCnt, $arAddParams);
595 } else {
596 if ($arAddParams["nTopCount"] > 0)
597 $strSql .= " LIMIT 0,".$arAddParams["nTopCount"];
598 $db_res = $DB->Query($strSql);
599 }
600
601 return $db_res;
602 }
603
610 public static function GetNameFieldsForQuery($sNameTemplate, $userTablePrefix = "U.")
611 {
612 global $DB;
613 $sqlHelper = \Bitrix\Main\Application::getConnection()->getSqlHelper();
614 $sNameTemplate = (empty($sNameTemplate) ? CSite::GetDefaultNameFormat() : $sNameTemplate);
615 if (!preg_match("/(#NAME#)|(#LAST_NAME#\,)|(#LAST_NAME#)|(#SECOND_NAME#)|(#NAME_SHORT#)|(#SECOND_NAME_SHORT#)/u", $sNameTemplate, $matches))
616 $sNameTemplate = CSite::GetDefaultNameFormat();
617 if (mb_strpos($sNameTemplate, "#NOBR#") !== false)
618 $sNameTemplate = preg_replace("/\#NOBR\#(.+?)\#\/NOBR\#/u", "\\1", $sNameTemplate);
619
620 preg_match_all("/(#NAME#)|(#LAST_NAME#\,)|(#LAST_NAME#)|(#SECOND_NAME#)|(#NAME_SHORT#)|(#SECOND_NAME_SHORT#)/u", $sNameTemplate, $matches);
621
622 $tmp = array();
623 foreach($matches[0] as $val) {
624 $pos = mb_strpos($sNameTemplate, $val);
625 if ($pos > 0) {
626 $tmp[] = "'".$DB->ForSql(mb_substr($sNameTemplate, 0, $pos))."'";
627 }
628 $tmp[] = str_replace(
629 array(
630 "#NAME#",
631 "#LAST_NAME#,",
632 "#LAST_NAME#",
633 "#SECOND_NAME#",
634 "#NAME_SHORT#",
635 "#SECOND_NAME_SHORT#"
636 ),
637 array(
638 $userTablePrefix."NAME",
639 "case when LENGTH(TRIM(".$userTablePrefix."LAST_NAME)) <= 0 then '' else " . $sqlHelper->getConcatFunction($userTablePrefix.'LAST_NAME', "','") . " END",
640 $userTablePrefix."LAST_NAME",
641 $userTablePrefix."SECOND_NAME",
642 "case when LENGTH(TRIM(".$userTablePrefix."NAME)) <= 0 then '' else " . $sqlHelper->getConcatFunction("SUBSTRING(".$userTablePrefix."NAME,1,1)", "'.'") . " END",
643 "case when LENGTH(TRIM(".$userTablePrefix."SECOND_NAME)) <= 0 then '' else " . $sqlHelper->getConcatFunction("SUBSTRING(".$userTablePrefix."SECOND_NAME,1,1)", "'.'") . " END"
644 ),
645 $val
646 );
647 $sNameTemplate = mb_substr($sNameTemplate, ($pos + mb_strlen($val)));
648 }
649 if (!empty($sNameTemplate))
650 $tmp[] = "'".$DB->ForSql($sNameTemplate)."'";
651 $res = implode(",", $tmp);
652 return (!empty($res) ? $res : "''");
653 }
654
655 public static function GetFormattedNameFieldsForSelect($arParams = array(), $bReturnAll = true)
656 {
657 $arParams = (is_array($arParams) ? $arParams : array($arParams));
658 $arParams["sNameTemplate"] = trim($arParams["sNameTemplate"]);
659 $arParams["sUserTablePrefix"] = rtrim((!empty($arParams["sUserTablePrefix"]) ? $arParams["sUserTablePrefix"] : "U"), ".").".";
660 $arParams["sForumUserTablePrefix"] = rtrim((!empty($arParams["sForumUserTablePrefix"]) ? $arParams["sForumUserTablePrefix"] : "FU"), ".").".";
661 $arParams["sFieldName"] = (!empty($arParams["sFieldName"]) ? $arParams["sFieldName"] : "AUTHOR_NAME_FRMT");
662 $arParams["sUserIDFieldName"] = (!empty($arParams["sUserIDFieldName"]) ? $arParams["sUserIDFieldName"] : "F.LAST_POSTER_ID");
663 $res = array(
664 "select" =>
665 "CASE ".
666 " WHEN (".
667 $arParams["sForumUserTablePrefix"]."USER_ID > 0 ".
668 " AND ".
669 $arParams["sForumUserTablePrefix"]."SHOW_NAME = 'Y' ".
670 " AND ".
671 "LENGTH(TRIM(CONCAT_WS('',".
673 $arParams["sNameTemplate"],
674 $arParams["sUserTablePrefix"])."))) > 0".
675 ") ".
676 " THEN TRIM(REPLACE(CONCAT_WS(' ',".
678 $arParams["sNameTemplate"],
679 $arParams["sUserTablePrefix"])."), ' ', ' '))".
680 " ELSE ".$arParams["sUserTablePrefix"]."LOGIN ".
681 " END AS ".$arParams["sFieldName"],
682 "join" =>
683 "LEFT JOIN b_forum_user ".rtrim($arParams["sForumUserTablePrefix"], ".").
684 " ON (".$arParams["sUserIDFieldName"]."=".$arParams["sForumUserTablePrefix"]."USER_ID) ".
685 "LEFT JOIN b_user ".rtrim($arParams["sUserTablePrefix"], ".").
686 " ON (".$arParams["sUserIDFieldName"]."=".$arParams["sUserTablePrefix"]."ID) "
687 );
688 if ($bReturnAll)
689 return $res;
690 return $res["select"];
691 }
692}
693
695{
696}
697
699{
700 // Tekuwie statusy posetitelej srazu ne pereschityvayutsya. Tol'ko postepenno v processe raboty.
701 public static function Add($arFields)
702 {
703 global $DB;
704
706 return false;
707
708 $arInsert = $DB->PrepareInsert("b_forum_rank", $arFields);
709 $strSql = "INSERT INTO b_forum_rank(".$arInsert[0].") VALUES(".$arInsert[1].")";
710 $DB->Query($strSql);
711 $ID = intval($DB->LastID());
712 foreach ($arFields["LANG"] as $i => $val)
713 {
714 $arInsert = $DB->PrepareInsert("b_forum_rank_lang", $arFields["LANG"][$i]);
715 $strSql = "INSERT INTO b_forum_rank_lang(RANK_ID, ".$arInsert[0].") VALUES(".$ID.", ".$arInsert[1].")";
716 $DB->Query($strSql);
717 }
718 return $ID;
719 }
720}
721
723{
724 public static function GetListEx($arOrder = Array("ID"=>"ASC"), $arFilter = Array(), $arAddParams = array())
725 {
726 global $DB;
727 $sqlHelper = \Bitrix\Main\Application::getConnection()->getSqlHelper();
728 $arSqlSearch = array();
729 $arSqlFrom = array();
730 $arSqlOrder = array();
731 $strSqlSearch = "";
732 $strSqlFrom = "";
733 $strSqlOrder = "";
734 $arFilter = (is_array($arFilter) ? $arFilter : array());
735
736 foreach ($arFilter as $key => $val)
737 {
739 $key = mb_strtoupper($key_res["FIELD"]);
740 $strNegative = $key_res["NEGATIVE"];
741 $strOperation = $key_res["OPERATION"];
742 switch ($key)
743 {
744 case "TOPIC_ID":
745 case "FORUM_ID":
746 if (intval($val)<=0)
747 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FSTAT.".$key." IS NULL OR FSTAT.".$key."<=0)";
748 else
749 $arSqlSearch[] = ($strNegative=="Y"?" FSTAT.".$key." IS NULL OR NOT ":"")."(FSTAT.".$key." ".$strOperation." ".intval($val).")";
750 break;
751 case "SITE_ID":
752 $bOrNull = false;
753 if (is_array($val)):
754 $res = array();
755 foreach ($val as $v):
756 $v = trim($v);
757 if ($v == "NULL")
758 $bOrNull = true;
759 elseif (!empty($v))
760 $res[] = "'".$DB->ForSql($v)."'";
762 $val = (!empty($res) ? implode(", ", $res) : "");
763 $strOperation = (!empty($res) ? "IN" : $strOperation);
764 else:
765 $val = "'".$DB->ForSql($val)."'";
766 endif;
767 if ($val == '')
768 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FSTAT.".$key." IS NULL OR LENGTH(FSTAT.".$key.")<=0)";
769 elseif ($strOperation == "IN")
770 $arSqlSearch[] = ($strNegative=="Y"?" FSTAT.".$key." IS NULL OR NOT ":"")."(FSTAT.".$key." IN (".$val.")".(
771 $bOrNull ? " OR (FSTAT.".$key." IS NULL OR LENGTH(FSTAT.".$key.")<=0)" : "").")";
772 else
773 $arSqlSearch[] = ($strNegative=="Y"?" FSTAT.".$key." IS NULL OR NOT ":"")."(FSTAT.".$key." ".$strOperation." ".$val.")";
774 break;
775 case "LAST_VISIT":
776 if($val == '')
777 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FSTAT.".$key." IS NULL)";
778 else
779 $arSqlSearch[] = ($strNegative=="Y"?" FSTAT.".$key." IS NULL OR NOT ":"")."(FSTAT.".$key." ".$strOperation." ".$DB->CharToDateFunction($DB->ForSql($val), "FULL").")";
780 break;
781 case "PERIOD":
782 if($val == '')
783 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FSTAT.LAST_VISIT IS NULL)";
784 else
785 {
786 $arSqlSearch[] = ($strNegative == "Y" ? " FSTAT.LAST_VISIT IS NULL OR NOT " : "") .
787 '(' . $sqlHelper->addSecondsToDateTime(-intval($val)) . ' ' . $strOperation . " FSTAT.LAST_VISIT)";
788 }
789 break;
790 case "HIDE_FROM_ONLINE":
791 $arSqlFrom["FU"] = "LEFT JOIN b_forum_user FU ON (FSTAT.USER_ID=FU.USER_ID)";
792 if ($val == '')
793 $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FU.".$key." IS NULL OR LENGTH(FU.".$key.")<=0)";
794 else
795 $arSqlSearch[] = ($strNegative=="Y"?" FU.".$key." IS NULL OR NOT ":"")."(((FU.".$key." ".$strOperation." '".$DB->ForSql($val)."' ) AND (FSTAT.USER_ID > 0)) OR (FSTAT.USER_ID <= 0))";
796 break;
797 case "ACTIVE":
798 $arSqlFrom["U"] = "LEFT JOIN b_user U ON (FSTAT.USER_ID=U.ID)";
799 $arSqlSearch[] = ($strNegative=="Y"?" U.".$key." IS NULL OR NOT ":"")."(FSTAT.USER_ID = 0 OR U.ACTIVE = 'Y')";
800 break;
801 }
802 }
803 if (!empty($arSqlSearch))
804 $strSqlSearch = " AND ".implode(" AND ", $arSqlSearch)." ";
805
806 if (!empty($arSqlFrom))
807 $strSqlFrom = implode("\n", $arSqlFrom);
808
809 foreach ($arOrder as $by=>$order)
810 {
811 $by = mb_strtoupper($by);
812 $order = mb_strtoupper($order);
813 $order = $order!="ASC" ? $order = "DESC" : "ASC";
814
815 if ($by == "USER_ID") $arSqlOrder[] = " FSTAT.USER_ID ".$order." ";
816 }
817
818 DelDuplicateSort($arSqlOrder);
819 if (count($arSqlOrder) > 0)
820 $strSqlOrder = " ORDER BY ".implode(", ", $arSqlOrder);
821
822 $strSql =
823 "SELECT FSTAT.USER_ID, FSTAT.IP_ADDRESS, FSTAT.PHPSESSID, \n".
824 " ".$DB->DateToCharFunction("FSTAT.LAST_VISIT", "FULL")." AS LAST_VISIT, \n".
825 " FSTAT.FORUM_ID, FSTAT.TOPIC_ID \n".
826 "FROM b_forum_stat FSTAT ".$strSqlFrom. "\n".
827 "WHERE 1=1 ".$strSqlSearch."\n".
828 $strSqlOrder;
829
830 if (is_set($arFilter, "COUNT_GUEST"))
831 {
832 $strSql =
833 "SELECT FST.*, FU.*, FSTAT.IP_ADDRESS, FSTAT.PHPSESSID, \n".
834 " ".$DB->DateToCharFunction("FSTAT.LAST_VISIT", "FULL")." AS LAST_VISIT, \n".
835 " FSTAT.FORUM_ID, FSTAT.TOPIC_ID, \n".
836 " U.LOGIN, U.NAME, U.SECOND_NAME, U.LAST_NAME, \n".
837 " ".
838 (!empty($arAddParams["sNameTemplate"]) ?
840 array_merge(
841 $arAddParams,
842 array(
843 "sUserTablePrefix" => "U.",
844 "sForumUserTablePrefix" => "FU.",
845 "sFieldName" => "SHOW_NAME")
846 ),
847 false
848 ) :
849 "FSTAT.SHOW_NAME"
850 )."\n ".
851 " FROM ( ".
852 " SELECT FSTAT.USER_ID, MAX(FSTAT.ID) FST_ID, COUNT(FSTAT.PHPSESSID) COUNT_USER ".
853 " FROM b_forum_stat FSTAT ".
854 $strSqlFrom.
855 " WHERE 1=1 ".$strSqlSearch.
856 " GROUP BY FSTAT.USER_ID".
857 ") FST ".
858 "LEFT JOIN b_forum_stat FSTAT ON (FST.FST_ID = FSTAT.ID) ".
859 "LEFT JOIN b_forum_user FU ON (FST.USER_ID = FU.USER_ID) ".
860 "LEFT JOIN b_user U ON (FST.USER_ID = U.ID) ".
861 $strSqlOrder;
862 }
863 $db_res = $DB->Query($strSql);
864 return $db_res;
865 }
866}
$arParams
Определения access_dialog.php:21
$db_res
Определения options_user_settings.php:8
static getConnection($name="")
Определения application.php:638
Определения user.php:1909
static GetFilterOperation($key)
Определения forum_new.php:582
Определения user.php:1630
static CheckFields($ACTION, &$arFields)
Определения user.php:1650
Определения user.php:1200
Определения user.php:10
Определения user.php:699
static Add($arFields)
Определения user.php:701
Определения user.php:723
static GetListEx($arOrder=Array("ID"=>"ASC"), $arFilter=Array(), $arAddParams=array())
Определения user.php:724
Определения user.php:695
Определения user.php:5
static GetListEx($arOrder=Array("ID"=>"ASC"), $arFilter=Array())
Определения user.php:258
static GetNameFieldsForQuery($sNameTemplate, $userTablePrefix="U.")
Определения user.php:610
static GetList($arOrder=Array("ID"=>"ASC"), $arFilter=Array(), $arAddParams=array())
Определения user.php:6
static SearchUser($template, $arAddParams=array())
Определения user.php:515
static GetFormattedNameFieldsForSelect($arParams=array(), $bReturnAll=true)
Определения user.php:655
if(!is_array($prop["VALUES"])) $tmp
Определения component_props.php:203
$arFields
Определения dblapprove.php:5
$template
Определения file_edit.php:49
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
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
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
endif
Определения csv_new_setup.php:990
DelDuplicateSort(&$arSort)
Определения tools.php:2055
is_set($a, $k=false)
Определения tools.php:2133
$order
Определения payment.php:8
global_menu_<?echo $menu["menu_id"]?> adm main menu item icon adm main menu item text text adm main menu hover adm submenu menucontainer menu_id menu_id items_id items_id desktop menu_id block none adm global submenu<?=($subMenuDisplay=="block" ? " adm-global-submenu-active" :"")?> global_submenu_<?echo $menu["menu_id"]?> text MAIN_PR_ADMIN_FAV items adm submenu items wrap adm submenu items stretch wrap BX adminMenu itemsStretchScroll()"> <table class if (!empty( $menu["items"])) elseif ( $menu[ 'menu_id']=='desktop') if ( $menu[ 'menu_id']=='desktop') endforeach
Определения prolog_main_admin.php:255
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
$val
Определения options.php:1793
$matches
Определения index.php:22
$arFilter
Определения user_search.php:106