1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
messages.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/socialnetwork/classes/general/messages.php");
4
6{
7 /***************************************/
8 /******** DATA MODIFICATION **********/
9 /***************************************/
10 public static function Add($arFields)
11 {
12 global $DB;
13
14 if (IsModuleInstalled("im") && CModule::IncludeModule("im"))
15 {
16 if ($arFields["MESSAGE_TYPE"] == SONET_MESSAGE_SYSTEM)
17 {
18 // TODO: complex notification logic for API use
19 $ID = CIMNotify::Add($arFields);
20 return $ID;
21 }
22
23 CIMMessenger::SpeedFileDelete($arFields['TO_USER_ID'], IM_SPEED_MESSAGE);
24 }
25
26 if (isset($arFields['MESSAGE']) && is_callable($arFields['MESSAGE']))
27 {
28 if ($arFields['MESSAGE'] instanceof \Closure)
29 {
30 $arFields['MESSAGE'] = $arFields['MESSAGE'](null);
31 }
32 else
33 {
34 $arFields['MESSAGE'] = '';
35 }
36 }
37
38 if (defined("INTASK_SKIP_SOCNET_MESSAGES1") && INTASK_SKIP_SOCNET_MESSAGES1)
39 {
40 $arFields["=DATE_VIEW"] = $DB->CurrentTimeFunction();
41 }
42
44
46 {
47 return false;
48 }
49
50 $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetMessagesAdd");
51 while ($arEvent = $db_events->Fetch())
52 if (ExecuteModuleEventEx($arEvent, array(&$arFields))===false)
53 return false;
54
55 $arInsert = $DB->PrepareInsert("b_sonet_messages", $arFields);
57
58 $ID = false;
59 if ($arInsert[0] <> '')
60 {
61 $strSql =
62 "INSERT INTO b_sonet_messages(".$arInsert[0].") ".
63 "VALUES(".$arInsert[1].")";
64 $DB->Query($strSql);
65
66 $ID = intval($DB->LastID());
67
68 $events = GetModuleEvents("socialnetwork", "OnSocNetMessagesAdd");
69 while ($arEvent = $events->Fetch())
71
72 //CSocNetMessages::SendEvent($ID, "SONET_NEW_MESSAGE");
73
75 }
76
77 return $ID;
78 }
79
80 public static function Update($ID, $arFields)
81 {
82 global $DB;
83
84 if (!CSocNetGroup::__ValidateID($ID))
85 return false;
86
87 $ID = intval($ID);
88
90
92 return false;
93
94 $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetMessagesUpdate");
95 while ($arEvent = $db_events->Fetch())
96 if (ExecuteModuleEventEx($arEvent, array($ID, $arFields))===false)
97 return false;
98
99 $strUpdate = $DB->PrepareUpdate("b_sonet_messages", $arFields);
101
102 if ($strUpdate <> '')
103 {
104 $strSql =
105 "UPDATE b_sonet_messages SET ".
106 " ".$strUpdate." ".
107 "WHERE ID = ".$ID." ";
108 $DB->Query($strSql);
109
110 $events = GetModuleEvents("socialnetwork", "OnSocNetMessagesUpdate");
111 while ($arEvent = $events->Fetch())
113 }
114 else
115 {
116 $ID = False;
117 }
118
119 return $ID;
120 }
121
122 /***************************************/
123 /********** DATA SELECTION ***********/
124 /***************************************/
125 public static function GetList($arOrder = Array("ID" => "DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
126 {
127 global $DB;
128
129 if (count($arSelectFields) <= 0)
130 {
131 $arSelectFields = array("ID", "FROM_USER_ID", "TO_USER_ID", "TITLE", "MESSAGE", "DATE_CREATE", "DATE_VIEW", "MESSAGE_TYPE", "FROM_DELETED", "TO_DELETED");
132 }
133
134 if (
135 count($arFilter) <= 0
136 ||
137 (
138 !array_key_exists("IS_LOG_ALL", $arFilter)
139 && !array_key_exists("IS_LOG", $arFilter)
140 && !array_key_exists("!IS_LOG", $arFilter)
141 )
142 )
143 {
144 $arFilter["!IS_LOG"] = "Y";
145 }
146
147 if (array_key_exists("IS_LOG_ALL", $arFilter))
148 {
149 unset($arFilter["IS_LOG"]);
150 unset($arFilter["!IS_LOG"]);
151 unset($arFilter["IS_LOG_ALL"]);
152 }
153
154 $online_interval = (array_key_exists("ONLINE_INTERVAL", $arFilter) && (int)$arFilter["ONLINE_INTERVAL"] > 0 ? $arFilter["ONLINE_INTERVAL"] : 120);
155
156 static $arFields = array(
157 "ID" => Array("FIELD" => "M.ID", "TYPE" => "int"),
158 "FROM_USER_ID" => Array("FIELD" => "M.FROM_USER_ID", "TYPE" => "int"),
159 "TO_USER_ID" => Array("FIELD" => "M.TO_USER_ID", "TYPE" => "int"),
160 "TITLE" => Array("FIELD" => "M.TITLE", "TYPE" => "string"),
161 "MESSAGE" => Array("FIELD" => "M.MESSAGE", "TYPE" => "string"),
162 "DATE_CREATE" => Array("FIELD" => "M.DATE_CREATE", "TYPE" => "datetime"),
163 "DATE_VIEW" => Array("FIELD" => "M.DATE_VIEW", "TYPE" => "datetime"),
164 "MESSAGE_TYPE" => Array("FIELD" => "M.MESSAGE_TYPE", "TYPE" => "string"),
165 "FROM_DELETED" => Array("FIELD" => "M.FROM_DELETED", "TYPE" => "string"),
166 "TO_DELETED" => Array("FIELD" => "M.TO_DELETED", "TYPE" => "string"),
167 "SEND_MAIL" => Array("FIELD" => "M.SEND_MAIL", "TYPE" => "string"),
168 "IS_LOG" => Array("FIELD" => "M.IS_LOG", "TYPE" => "string"),
169 "EMAIL_TEMPLATE" => Array("FIELD" => "M.EMAIL_TEMPLATE", "TYPE" => "string"),
170 "FROM_USER_NAME" => Array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
171 "FROM_USER_LAST_NAME" => Array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
172 "FROM_USER_SECOND_NAME" => Array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
173 "FROM_USER_LOGIN" => Array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
174 "FROM_USER_PERSONAL_PHOTO" => Array("FIELD" => "U.PERSONAL_PHOTO", "TYPE" => "int", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
175 "FROM_USER_PERSONAL_GENDER" => Array("FIELD" => "U.PERSONAL_GENDER", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
176 "FROM_USER_LID" => Array("FIELD" => "U.LID", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (M.FROM_USER_ID = U.ID)"),
177 "TO_USER_NAME" => Array("FIELD" => "U1.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
178 "TO_USER_LAST_NAME" => Array("FIELD" => "U1.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
179 "TO_USER_SECOND_NAME" => Array("FIELD" => "U1.SECOND_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
180 "TO_USER_LOGIN" => Array("FIELD" => "U1.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
181 "TO_USER_EMAIL" => Array("FIELD" => "U1.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
182 "TO_USER_PERSONAL_PHOTO" => Array("FIELD" => "U1.PERSONAL_PHOTO", "TYPE" => "int", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
183 "TO_USER_PERSONAL_GENDER" => Array("FIELD" => "U1.PERSONAL_GENDER", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
184 "TO_USER_LID" => Array("FIELD" => "U1.LID", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)"),
185 );
186
188 $helper = $connection->getSqlHelper();
189
190 $arFields["FROM_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 (M.FROM_USER_ID = U.ID)");
191 $arFields["TO_USER_IS_ONLINE"] = Array("FIELD" => "CASE WHEN U1.LAST_ACTIVITY_DATE > " . $helper->addSecondsToDateTime(-$online_interval) . " THEN 'Y' ELSE 'N' END", "TYPE" => "string", "FROM" => "INNER JOIN b_user U1 ON (M.TO_USER_ID = U1.ID)");
192
193
194 $arSqls = CSocNetGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
195
196 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
197
198 if (is_array($arGroupBy) && count($arGroupBy)==0)
199 {
200 $strSql =
201 "SELECT ".$arSqls["SELECT"]." ".
202 "FROM b_sonet_messages M ".
203 " ".$arSqls["FROM"]." ";
204 if ($arSqls["WHERE"] <> '')
205 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
206 if ($arSqls["GROUPBY"] <> '')
207 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
208
209 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
210
211 $dbRes = $DB->Query($strSql);
212 if ($arRes = $dbRes->Fetch())
213 return $arRes["CNT"];
214 else
215 return False;
216 }
217
218
219 $strSql =
220 "SELECT ".$arSqls["SELECT"]." ".
221 "FROM b_sonet_messages M ".
222 " ".$arSqls["FROM"]." ";
223 if ($arSqls["WHERE"] <> '')
224 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
225 if ($arSqls["GROUPBY"] <> '')
226 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
227 if ($arSqls["ORDERBY"] <> '')
228 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
229
230 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) <= 0)
231 {
232 $strSql_tmp =
233 "SELECT COUNT('x') as CNT ".
234 "FROM b_sonet_messages M ".
235 " ".$arSqls["FROM"]." ";
236 if ($arSqls["WHERE"] <> '')
237 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
238 if ($arSqls["GROUPBY"] <> '')
239 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
240
241 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
242
243 $dbRes = $DB->Query($strSql_tmp);
244 $cnt = 0;
245 if ($arSqls["GROUPBY"] == '')
246 {
247 if ($arRes = $dbRes->Fetch())
248 $cnt = $arRes["CNT"];
249 }
250 else
251 {
252 // ТОЛЬКО ДЛЯ MYSQL!!! ДЛЯ ORACLE ДРУГОЙ КОД
253 $cnt = $dbRes->SelectedRowsCount();
254 }
255
256 $dbRes = new CDBResult();
257
258 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
259
260 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
261 }
262 else
263 {
264 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) > 0)
265 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
266
267 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
268
269 $dbRes = $DB->Query($strSql);
270 }
271
272 return $dbRes;
273 }
274
275 public static function GetChatLastDate($currentUserID, $userID)
276 {
277 global $DB;
279 $helper = $connection->getSqlHelper();
280
281 $currentUserID = (int)$currentUserID;
282 if ($currentUserID <= 0)
283 {
284 return false;
285 }
286 $userID = (int)$userID;
287 if ($userID <= 0)
288 {
289 return false;
290 }
291
292 $date = "";
293
294 $strSql =
295 "SELECT " . $helper->formatDate('YYYY-MM-DD 00:00:00', 'MAX(DATE_CREATE)') . " as DDD ".
296 "FROM b_sonet_messages ".
297 "WHERE ".
298 " (TO_USER_ID = ".$currentUserID." ".
299 " AND FROM_USER_ID = ".$userID." ".
300 " AND TO_DELETED = 'N' ".
301 " OR FROM_USER_ID = ".$currentUserID." ".
302 " AND TO_USER_ID = ".$userID." ".
303 " AND FROM_DELETED = 'N' ) ".
304 " AND MESSAGE_TYPE = 'P' ";
305
306 $dbResult = $DB->Query($strSql);
307
308 if ($arResult = $dbResult->Fetch())
309 {
310 $date = $arResult["DDD"];
311 }
312
313 $date = Trim($date);
314 if ($date == '')
315 {
316 $date = date("Y-m-d 00:00:00");
317 }
318
319 return $date;
320 }
321
322 public static function GetMessagesForChat($currentUserID, $userID, $date = false, $arNavStartParams = false, $replyMessId=false)
323 {
324 global $DB;
326 $helper = $connection->getSqlHelper();
327
328 $currentUserID = (int)$currentUserID;
329 if ($currentUserID <= 0)
330 {
331 return false;
332 }
333
334 $userID = (int)$userID;
335
336 if ($date !== false)
337 {
338 $date = Trim($date);
339 if ($date == '')
340 {
341 return false;
342 }
343
344 if (!preg_match("#\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d#i", $date))
345 {
346 return false;
347 }
348 }
349
350 $replyMessId = (int)$replyMessId;
351
352 //time zone
353 $diff = false;
354 if(CTimeZone::Enabled())
355 {
356 $diff = CTimeZone::GetOffset();
357 }
358
359 if($diff !== false && $diff <> 0)
360 {
361 $sDateFmt = $helper->formatDate('YYYY-MM-DD HH:MI:SS', $helper->addSecondsToDateTime($diff, 'DATE_CREATE')) . " as DATE_CREATE_FMT, ";
362 }
363 else
364 {
365 $sDateFmt = $helper->formatDate('YYYY-MM-DD HH:MI:SS', 'DATE_CREATE') . " as DATE_CREATE_FMT, ";
366 }
367
368 $strSql =
369 "SELECT 'IN' as WHO, ID, FROM_USER_ID as USER_ID, TITLE, MESSAGE, DATE_VIEW as DATE_VIEW, DATE_CREATE, ".
370 " ".$sDateFmt.
371 " ".$DB->DateToCharFunction("DATE_CREATE", "FULL")." as DATE_CREATE_FORMAT ".
372 "FROM b_sonet_messages ".
373 "WHERE TO_USER_ID = ".$currentUserID." ".
374 ($userID > 0? " AND FROM_USER_ID = ".$userID." ":"").
375 " AND TO_DELETED = 'N' ".
376 " AND (IS_LOG IS NULL OR NOT IS_LOG = 'Y') ".
377 (($date !== false && $replyMessId <=0) ? " AND MESSAGE_TYPE = 'P' AND DATE_CREATE > '".$DB->ForSql($date)."' " : "").
378 (($replyMessId > 0) ? " AND MESSAGE_TYPE = 'P' AND ID >= '".$replyMessId."' " : "").
379 "UNION ALL ".
380 "SELECT 'OUT' as WHO, ID, TO_USER_ID as USER_ID, TITLE, MESSAGE, DATE_CREATE as DATE_VIEW, DATE_CREATE, ".
381 " ".$sDateFmt.
382 " ".$DB->DateToCharFunction("DATE_CREATE", "FULL")." as DATE_CREATE_FORMAT ".
383 "FROM b_sonet_messages ".
384 "WHERE FROM_USER_ID = ".$currentUserID." ".
385 ($userID > 0? " AND TO_USER_ID = ".$userID." ":"").
386 " AND FROM_DELETED = 'N' ".
387 " AND (IS_LOG IS NULL OR NOT IS_LOG = 'Y') ".
388 (($date !== false && $replyMessId <=0) ? " AND MESSAGE_TYPE = 'P' AND DATE_CREATE > '".$DB->ForSql($date)."' " : "").
389 (($replyMessId > 0) ? " AND MESSAGE_TYPE = 'P' AND ID >= '".$replyMessId."' " : "").
390 "ORDER BY DATE_CREATE ".(($date !== false) ? "ASC" : "DESC")." ";
391
392 if (is_array($arNavStartParams) && (int)$arNavStartParams["nTopCount"] <= 0)
393 {
394 $strSql_tmp =
395 "SELECT COUNT(M.ID) as CNT ".
396 "FROM b_sonet_messages M ".
397 "WHERE (M.TO_USER_ID = ".$currentUserID." ".
398 ($userID > 0? " AND M.FROM_USER_ID = ".$userID." ":"").
399 " AND M.TO_DELETED = 'N' ".
400 " OR ".
401 " M.FROM_USER_ID = ".$currentUserID." ".
402 ($userID > 0? " AND M.TO_USER_ID = ".$userID." ":"").
403 " AND M.FROM_DELETED = 'N') ".
404 " AND (IS_LOG IS NULL OR NOT IS_LOG = 'Y') ".
405 (($date !== false || $replyMessId > 0) ? " AND M.MESSAGE_TYPE = 'P' " : "");
406
407 $dbRes = $DB->Query($strSql_tmp);
408 $cnt = 0;
409 if ($arRes = $dbRes->Fetch())
410 {
411 $cnt = $arRes["CNT"];
412 }
413
414 $dbRes = new CDBResult();
415
416 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
417 }
418 else
419 {
420 if (is_array($arNavStartParams) && (int)$arNavStartParams["nTopCount"] > 0)
421 {
422 $strSql .= "LIMIT " . (int)$arNavStartParams["nTopCount"];
423 }
424
425 $dbRes = $DB->Query($strSql);
426 }
427
428 return $dbRes;
429 }
430
431 public static function GetMessagesUsers($userID, $arNavStartParams = false, $online_interval = 120)
432 {
433 global $DB;
435 $helper = $connection->getSqlHelper();
436
437 $userID = (int)$userID;
438 if ($userID <= 0)
439 {
440 return false;
441 }
442
443 $strSql =
444 "SELECT U.ID, U.ACTIVE, U.LOGIN, U.NAME, U.LAST_NAME, U.SECOND_NAME, U.PERSONAL_PHOTO, U.PERSONAL_GENDER, COUNT(M.ID) as TOTAL, MAX(M.DATE_CREATE) as MAX_DATE, ".
445 " CASE WHEN U.LAST_ACTIVITY_DATE > " . $helper->addSecondsToDateTime(-(int)$online_interval) ." THEN 'Y' ELSE 'N' END IS_ONLINE, ".
446 " ".$DB->DateToCharFunction("MAX(M.DATE_CREATE)", "FULL")." as MAX_DATE_FORMAT, ".
447 " SUM(CASE WHEN M.DATE_VIEW IS NULL AND M.TO_USER_ID = ".$userID." THEN 1 ELSE 0 END) as UNREAD ".
448 "FROM b_user U, b_sonet_messages M ".
449 "WHERE ".
450 " (M.IS_LOG IS NULL OR NOT M.IS_LOG = 'Y') ".
451 " AND ( ".
452 " M.TO_USER_ID = ".$userID." ".
453 " AND M.FROM_USER_ID = U.ID ".
454 " AND M.TO_DELETED = 'N' ".
455 " OR ".
456 " M.FROM_USER_ID = ".$userID." ".
457 " AND M.TO_USER_ID = U.ID ".
458 " AND M.FROM_DELETED = 'N' ".
459 " ) ".
460 "GROUP BY U.ID, U.NAME, U.LAST_NAME, U.SECOND_NAME, U.PERSONAL_PHOTO, U.PERSONAL_GENDER ".
461 "ORDER BY UNREAD DESC, MAX_DATE DESC ";
462
463 if (is_array($arNavStartParams) && (int)$arNavStartParams["nTopCount"] <= 0)
464 {
465 $strSql_tmp =
466 "SELECT DISTINCT FROM_USER_ID ".
467 "FROM b_sonet_messages M ".
468 "WHERE ".
469 "(M.IS_LOG IS NULL OR NOT M.IS_LOG = 'Y') ".
470 "AND M.TO_USER_ID = ".$userID." ".
471 "AND M.TO_DELETED = 'N' ".
472
473 "UNION DISTINCT ".
474
475 "SELECT DISTINCT TO_USER_ID ".
476 "FROM b_sonet_messages ".
477 "WHERE ".
478 "(IS_LOG IS NULL OR NOT IS_LOG = 'Y') ".
479 "AND FROM_USER_ID = ".$userID." ".
480 "AND FROM_DELETED = 'N'";
481
482 $dbRes = $DB->Query($strSql_tmp);
483 $cnt = 0;
484 if ($dbRes)
485 $cnt = $dbRes->SelectedRowsCount();
486
487 $dbRes = new CDBResult();
488 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
489 }
490 else
491 {
492 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"]) > 0)
493 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
494
495 $dbRes = $DB->Query($strSql);
496 }
497
498 return $dbRes;
499 }
500
501 public static function Now()
502 {
503 return date("Y-m-d H:i:s");
504 }
505}
$connection
Определения actionsdefinitions.php:38
$arResult
Определения generate_coupon.php:16
static getConnection($name="")
Определения application.php:638
static processEqualityFieldsToUpdate($fields1, &$update)
Определения util.php:239
static getEqualityFields(&$fields)
Определения util.php:207
static processEqualityFieldsToInsert($fields1, &$insert)
Определения util.php:222
Определения messages.php:6
static CheckFields($ACTION, &$arFields, $ID=0)
Определения messages.php:10
static __SpeedFileCreate($userID)
Определения messages.php:517
Определения messages.php:6
static GetMessagesUsers($userID, $arNavStartParams=false, $online_interval=120)
Определения messages.php:431
static Add($arFields)
Определения messages.php:10
static Now()
Определения messages.php:501
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения messages.php:125
static GetChatLastDate($currentUserID, $userID)
Определения messages.php:275
static GetMessagesForChat($currentUserID, $userID, $date=false, $arNavStartParams=false, $replyMessId=false)
Определения messages.php:322
static Update($ID, $arFields)
Определения messages.php:80
$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
const IM_SPEED_MESSAGE
Определения include.php:66
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
IsModuleInstalled($module_id)
Определения tools.php:5301
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
</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_MESSAGE_SYSTEM
Определения include.php:47
$arRes
Определения options.php:104
$dbResult
Определения updtr957.php:3
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168