1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
user_group.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/socialnetwork/classes/general/user_group.php");
4
9
11{
12 /***************************************/
13 /******** DATA MODIFICATION **********/
14 /***************************************/
15 public static function Add($arFields, bool $skipCheckFields = false, bool $skipStatistics = false, bool $delayEvents = false)
16 {
17 global $DB, $CACHE_MANAGER;
19 $helper = $connection->getSqlHelper();
20
22
23 if (!$skipCheckFields && !self::CheckFields("ADD", $arFields))
24 {
25 return false;
26 }
27
28 $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserToGroupAdd");
29 while ($arEvent = $db_events->Fetch())
30 {
31 if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
32 {
33 return false;
34 }
35 }
36
37 $arInsert = $DB->PrepareInsert("b_sonet_user2group", $arFields);
38
39 Util::processEqualityFieldsToInsert($arFields1, $arInsert);
40
41 $ID = false;
42 if ($arInsert[0] <> '')
43 {
44 $queryFields = [];
45 $tableFields = $connection->getTableFields('b_sonet_user2group');
46 foreach ($arFields as $columnName => $columnValue)
47 {
48 if (array_key_exists($columnName, $tableFields))
49 {
50 $queryFields[$columnName] = $columnValue;
51 }
52 }
53
54 $insert = $queryFields;
55 $insert['DATE_CREATE'] = (new \Bitrix\Main\Type\DateTime());
56 $insert['DATE_UPDATE'] = $insert['DATE_CREATE'];
57 $update = $queryFields;
58 $update['DATE_UPDATE'] = $insert['DATE_CREATE'];
59 $merge = $helper->prepareMerge('b_sonet_user2group', ['USER_ID', 'GROUP_ID'], $insert, $update);
60 if ($merge[0])
61 {
62 $connection->query($merge[0]);
63 }
64 $strSql ="SELECT ID FROM b_sonet_user2group WHERE USER_ID = "
65 . intval($arFields['USER_ID']) . " AND GROUP_ID = " . intval($arFields['GROUP_ID']);
66 $ar = $DB->Query($strSql)->Fetch();
67 $ID = $ar ? intval($ar['ID']) : 0;
68 }
69
70 if ($ID)
71 {
72 if (!$skipStatistics)
73 {
74 CSocNetGroup::SetStat($arFields["GROUP_ID"], $arFields['INITIATED_BY_USER_ID'] ?? 0);
75 }
76
78
79 $events = GetModuleEvents("socialnetwork", "OnSocNetUserToGroupAdd");
80 while ($arEvent = $events->Fetch())
81 {
82 if ($delayEvents)
83 {
84 static::delayJob(static fn () => ExecuteModuleEventEx($arEvent, array($ID, &$arFields)));
85 }
86 else
87 {
89 }
90 }
91
93 'GROUP_ID' => $arFields['GROUP_ID'],
94 'USER_ID' => $arFields['USER_ID'],
95 'ROLE' => $arFields['ROLE'],
96 'INITIATED_BY_TYPE' => $arFields['INITIATED_BY_TYPE'],
97 ]);
98
100 'GROUP_ID' => $arFields['GROUP_ID'],
101 'USER_ID' => $arFields['USER_ID'],
102 ]);
103
104 if (
105 $arFields['INITIATED_BY_TYPE'] === SONET_INITIATED_BY_GROUP
106 && ($arFields['SEND_MAIL'] ?? null) !== 'N'
108 )
109 {
110 self::SendEvent($ID);
111 }
112
113 self::$roleCache[$arFields["USER_ID"]."_".$arFields["GROUP_ID"]] = array(
114 "ROLE" => $arFields["ROLE"],
115 "AUTO_MEMBER" => (isset($arFields["AUTO_MEMBER"]) ? $arFields["AUTO_MEMBER"] : "N")
116 );
117
118 if (defined("BX_COMP_MANAGED_CACHE"))
119 {
120 $CACHE_MANAGER->ClearByTag("sonet_user2group_G".$arFields["GROUP_ID"]);
121 $CACHE_MANAGER->ClearByTag("sonet_user2group_U".$arFields["USER_ID"]);
122 $CACHE_MANAGER->ClearByTag("sonet_user2group");
123 }
124
126 'GROUP_ID' => (int)$arFields['GROUP_ID'],
127 'USER_ID' => (int)$arFields['USER_ID'],
128 'ROLE' => $arFields['ROLE'],
129 'INITIATED_BY_TYPE' => $arFields['INITIATED_BY_TYPE'],
130 'RELATION_ID' => $ID,
131 ]);
132 }
133
134 return $ID;
135 }
136
137 public static function Update($ID, $arFields)
138 {
140
141 if (!CSocNetGroup::__ValidateID($ID))
142 return false;
143
144 $ID = (int)$ID;
145
146 $arUser2GroupOld = self::GetByID($ID);
147 if (!$arUser2GroupOld)
148 {
149 $APPLICATION->ThrowException(GetMessage("SONET_NO_USER2GROUP"), "ERROR_NO_USER2GROUP");
150 return false;
151 }
152
154
155 if (!self::CheckFields("UPDATE", $arFields, $ID))
156 {
157 return false;
158 }
159
160 $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserToGroupUpdate");
161 while ($arEvent = $db_events->Fetch())
162 {
163 if (ExecuteModuleEventEx($arEvent, array($ID, $arFields)) === false)
164 {
165 return false;
166 }
167 }
168
169 $strUpdate = $DB->PrepareUpdate("b_sonet_user2group", $arFields);
170 Util::processEqualityFieldsToUpdate($arFields1, $strUpdate);
171
172 if ($strUpdate <> '')
173 {
174 $strSql =
175 "UPDATE b_sonet_user2group SET ".
176 " ".$strUpdate." ".
177 "WHERE ID = ".$ID." ";
178 $DB->Query($strSql);
179
180 CSocNetGroup::SetStat($arUser2GroupOld["GROUP_ID"]);
181 CSocNetSearch::OnUserRelationsChange($arUser2GroupOld["USER_ID"]);
182 if (
183 array_key_exists("GROUP_ID", $arFields)
184 && $arUser2GroupOld["GROUP_ID"] != $arFields["GROUP_ID"]
185 )
186 {
187 CSocNetGroup::SetStat($arFields["GROUP_ID"]);
188 }
189
190 $events = GetModuleEvents("socialnetwork", "OnSocNetUserToGroupUpdate");
191 while ($arEvent = $events->Fetch())
192 {
193 ExecuteModuleEventEx($arEvent, array($ID, $arFields, $arUser2GroupOld));
194 }
195
197 'GROUP_ID' => $arUser2GroupOld['GROUP_ID'],
198 'USER_ID' => $arUser2GroupOld['USER_ID'],
199 'OLD_ROLE' => $arUser2GroupOld['ROLE'] ?? null,
200 'OLD_INITIATED_BY_TYPE' => $arUser2GroupOld['INITIATED_BY_TYPE'] ?? null,
201 'NEW_ROLE' => $arFields['ROLE'] ?? null,
202 ]);
203
204 if (!empty($arFields['ROLE']))
205 {
207 'GROUP_ID' => $arUser2GroupOld['GROUP_ID'],
208 'USER_ID' => $arUser2GroupOld['USER_ID'],
209 ]);
210 }
211
212 if (array_key_exists($arUser2GroupOld["USER_ID"]."_".$arUser2GroupOld["GROUP_ID"], self::$roleCache))
213 {
214 unset(self::$roleCache[$arUser2GroupOld["USER_ID"]."_".$arUser2GroupOld["GROUP_ID"]]);
215 }
216
217 if(defined("BX_COMP_MANAGED_CACHE"))
218 {
219 $CACHE_MANAGER->ClearByTag("sonet_user2group_G".$arUser2GroupOld["GROUP_ID"]);
220 $CACHE_MANAGER->ClearByTag("sonet_user2group_U".$arUser2GroupOld["USER_ID"]);
221 $CACHE_MANAGER->ClearByTag("sonet_user2group");
222 }
223
225 'GROUP_ID' => (int)($arFields['GROUP_ID'] ?? $arUser2GroupOld['GROUP_ID']),
226 'USER_ID' => (int)($arFields['USER_ID'] ?? $arUser2GroupOld['USER_ID']),
227 'ROLE_OLD' => $arUser2GroupOld['ROLE'],
228 'ROLE_NEW' => ($arFields['ROLE'] ?? null),
229 'INITIATED_BY_TYPE' => ($arFields['INITIATED_BY_TYPE'] ?? $arUser2GroupOld['INITIATED_BY_TYPE']),
230 'RELATION_ID' => $arUser2GroupOld['USER_ID'],
231 ]);
232 }
233 else
234 {
235 $ID = False;
236 }
237
238 return $ID;
239 }
240
241 /***************************************/
242 /********** DATA SELECTION ***********/
243 /***************************************/
244 public static function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
245 {
246 global $DB;
248 $helper = $connection->getSqlHelper();
249
250 if (count($arSelectFields) <= 0)
251 {
252 $arSelectFields = array("ID", "USER_ID", "GROUP_ID", "ROLE", "AUTO_MEMBER", "DATE_CREATE", "DATE_UPDATE", "INITIATED_BY_TYPE", "INITIATED_BY_USER_ID", "MESSAGE");
253 }
254
255 $online_interval = (
256 array_key_exists("ONLINE_INTERVAL", $arFilter)
257 && (int)$arFilter["ONLINE_INTERVAL"] > 0
258 ? $arFilter["ONLINE_INTERVAL"]
259 : 120
260 );
261
262 static $arFields1 = array(
263 "ID" => Array("FIELD" => "UG.ID", "TYPE" => "int"),
264 "USER_ID" => Array("FIELD" => "UG.USER_ID", "TYPE" => "int"),
265 "GROUP_ID" => Array("FIELD" => "UG.GROUP_ID", "TYPE" => "int"),
266 "ROLE" => Array("FIELD" => "UG.ROLE", "TYPE" => "string"),
267 "AUTO_MEMBER" => Array("FIELD" => "UG.AUTO_MEMBER", "TYPE" => "string"),
268 "DATE_CREATE" => Array("FIELD" => "UG.DATE_CREATE", "TYPE" => "datetime"),
269 "DATE_UPDATE" => Array("FIELD" => "UG.DATE_UPDATE", "TYPE" => "datetime"),
270 "INITIATED_BY_TYPE" => Array("FIELD" => "UG.INITIATED_BY_TYPE", "TYPE" => "string"),
271 "INITIATED_BY_USER_ID" => Array("FIELD" => "UG.INITIATED_BY_USER_ID", "TYPE" => "int"),
272 "MESSAGE" => Array("FIELD" => "UG.MESSAGE", "TYPE" => "string"),
273 "GROUP_NAME" => Array("FIELD" => "G.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
274 "GROUP_DESCRIPTION" => Array("FIELD" => "G.DESCRIPTION", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
275 "GROUP_ACTIVE" => Array("FIELD" => "G.ACTIVE", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
276 "GROUP_PROJECT" => Array("FIELD" => "G.PROJECT", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
277 "GROUP_IMAGE_ID" => Array("FIELD" => "G.IMAGE_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
278 "GROUP_VISIBLE" => Array("FIELD" => "G.VISIBLE", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
279 "GROUP_OWNER_ID" => Array("FIELD" => "G.OWNER_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
280 "GROUP_INITIATE_PERMS" => Array("FIELD" => "G.INITIATE_PERMS", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
281 "GROUP_OPENED" => Array("FIELD" => "G.OPENED", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
282 "GROUP_NUMBER_OF_MEMBERS" => Array("FIELD" => "G.NUMBER_OF_MEMBERS", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
283 "GROUP_DATE_ACTIVITY" => Array("FIELD" => "G.DATE_ACTIVITY", "TYPE" => "datetime", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
284 "GROUP_CLOSED" => Array("FIELD" => "G.CLOSED", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
285 "GROUP_LANDING" => Array("FIELD" => "G.LANDING", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)"),
286 "USER_ACTIVE" => Array("FIELD" => "U.ACTIVE", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
287 "USER_NAME" => Array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
288 "USER_LAST_NAME" => Array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
289 "USER_SECOND_NAME" => Array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
290 "USER_WORK_POSITION" => Array("FIELD" => "U.WORK_POSITION", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
291 "USER_LOGIN" => Array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
292 "USER_EMAIL" => Array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
293 "USER_CONFIRM_CODE" => Array("FIELD" => "U.CONFIRM_CODE", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
294 "USER_PERSONAL_PHOTO" => Array("FIELD" => "U.PERSONAL_PHOTO", "TYPE" => "int", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
295 "USER_PERSONAL_GENDER" => Array("FIELD" => "U.PERSONAL_GENDER", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
296 "USER_LID" => Array("FIELD" => "U.LID", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)"),
297 "INITIATED_BY_USER_NAME" => Array("FIELD" => "U1.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
298 "INITIATED_BY_USER_LAST_NAME" => Array("FIELD" => "U1.LAST_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
299 "INITIATED_BY_USER_SECOND_NAME" => Array("FIELD" => "U1.SECOND_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
300 "INITIATED_BY_USER_LOGIN" => Array("FIELD" => "U1.LOGIN", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
301 "INITIATED_BY_USER_EMAIL" => Array("FIELD" => "U1.EMAIL", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
302 "INITIATED_BY_USER_PHOTO" => Array("FIELD" => "U1.PERSONAL_PHOTO", "TYPE" => "int", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
303 "INITIATED_BY_USER_GENDER" => Array("FIELD" => "U1.PERSONAL_GENDER", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U1 ON (UG.INITIATED_BY_USER_ID = U1.ID)"),
304 "SCRUM_OWNER_ID" => Array("FIELD" => "G.SCRUM_OWNER_ID", "TYPE" => "int"),
305 "GROUP_SCRUM_MASTER_ID" => [ 'FIELD' => 'G.SCRUM_MASTER_ID', 'TYPE' => 'int' ],
306 'GROUP_TYPE' => ['FIELD' => 'G.TYPE', 'TYPE' => 'string'],
307 );
308 $arFields1['RAND'] = Array("FIELD" => $helper->getRandomFunction(), "TYPE" => "string");
309 $arFields["USER_IS_ONLINE"] = Array("FIELD" => "CASE WHEN U.LAST_ACTIVITY_DATE > " . $helper->addSecondsToDateTime(-$online_interval) . " THEN 'Y' ELSE 'N' END", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UG.USER_ID = U.ID)");
310
311 if (array_key_exists("GROUP_SITE_ID", $arFilter))
312 {
313 $arFields["GROUP_SITE_ID"] = Array("FIELD" => "SGS.SITE_ID", "TYPE" => "string", "FROM" => "LEFT JOIN b_sonet_group_site SGS ON UG.GROUP_ID = SGS.GROUP_ID");
314 $strDistinct = " DISTINCT ";
315 foreach ($arSelectFields as $i => $strFieldTmp)
316 {
317 if ($strFieldTmp === "GROUP_SITE_ID")
318 {
319 unset($arSelectFields[$i]);
320 }
321 }
322
323 foreach ($arOrder as $by => $order)
324 {
325 if (!in_array($by, $arSelectFields))
326 {
327 $arSelectFields[] = $by;
328 }
329 }
330 }
331 else
332 {
333 $arFields["GROUP_SITE_ID"] = Array("FIELD" => "G.SITE_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sonet_group G ON (UG.GROUP_ID = G.ID)");
334 $strDistinct = " ";
335 }
336
337 $arFields = array_merge($arFields1, $arFields);
338 $arSqls = CSocNetGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
339 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", $strDistinct, $arSqls["SELECT"]);
340
341 if (is_array($arGroupBy) && count($arGroupBy)==0)
342 {
343 $strSql =
344 "SELECT ".$arSqls["SELECT"]." ".
345 "FROM b_sonet_user2group UG ".
346 " ".$arSqls["FROM"]." ";
347 if ($arSqls["WHERE"] <> '')
348 {
349 $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
350 }
351 if ($arSqls["GROUPBY"] <> '')
352 {
353 $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
354 }
355
356 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
357
358 $dbRes = $DB->Query($strSql);
359 return (($arRes = $dbRes->Fetch()) ? $arRes["CNT"] : false);
360 }
361
362 $strSql =
363 "SELECT ".$arSqls["SELECT"]." ".
364 "FROM b_sonet_user2group UG ".
365 " ".$arSqls["FROM"]." ";
366 if ($arSqls["WHERE"] <> '')
367 {
368 $strSql .= "WHERE " . $arSqls["WHERE"] . " ";
369 }
370 if ($arSqls["GROUPBY"] <> '')
371 {
372 $strSql .= "GROUP BY " . $arSqls["GROUPBY"] . " ";
373 }
374 if ($arSqls["ORDERBY"] <> '')
375 {
376 $strSql .= "ORDER BY " . $arSqls["ORDERBY"] . " ";
377 }
378
379 if (
380 is_array($arNavStartParams)
381 && (int)($arNavStartParams["nTopCount"] ?? 0) <= 0
382 )
383 {
384 $strSql_tmp =
385 "SELECT COUNT('x') as CNT ".
386 "FROM b_sonet_user2group UG ".
387 " ".$arSqls["FROM"]." ";
388 if ($arSqls["WHERE"] <> '')
389 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
390 if ($arSqls["GROUPBY"] <> '')
391 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
392
393 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
394
395 $dbRes = $DB->Query($strSql_tmp);
396 $cnt = 0;
397 if ($arSqls["GROUPBY"] == '')
398 {
399 if ($arRes = $dbRes->Fetch())
400 {
401 $cnt = $arRes["CNT"];
402 }
403 }
404 else
405 {
406 // ТОЛЬКО ДЛЯ MYSQL!!! ДЛЯ ORACLE ДРУГОЙ КОД
407 $cnt = $dbRes->SelectedRowsCount();
408 }
409
410 $dbRes = new CDBResult();
411
412 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
413
414 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
415 }
416 else
417 {
418 if (
419 is_array($arNavStartParams)
420 && intval($arNavStartParams["nTopCount"]) > 0
421 )
422 {
423 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
424 }
425
426 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
427
428 $dbRes = $DB->Query($strSql);
429 }
430
431 return $dbRes;
432 }
433}
$connection
Определения actionsdefinitions.php:38
global $APPLICATION
Определения include.php:80
static getConnection($name="")
Определения application.php:638
static isModuleInstalled($moduleName)
Определения modulemanager.php:125
static addEvent(string $type, array $data)
Определения counterservice.php:46
static addEvent(string $type, array $data)
Определения service.php:45
static processEqualityFieldsToUpdate($fields1, &$update)
Определения util.php:239
static getEqualityFields(&$fields)
Определения util.php:207
static processEqualityFieldsToInsert($fields1, &$insert)
Определения util.php:222
Определения dbresult.php:88
static OnUserRelationsChange($user_id)
Определения search.php:47
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения user_group.php:244
static Update($ID, $arFields)
Определения user_group.php:137
static Add($arFields, bool $skipCheckFields=false, bool $skipStatistics=false, bool $delayEvents=false)
Определения user_group.php:15
global $CACHE_MANAGER
Определения clear_component_cache.php:7
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$order
Определения payment.php:8
$ar
Определения options.php:199
$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
const SONET_INITIATED_BY_GROUP
Определения include.php:45
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168