1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
im_share.php
См. документацию.
1<?
3
4use Bitrix\Tasks\Item\Task;
5use Bitrix\Tasks\Util;
6
8{
9 const TYPE_POST = 'POST';
10 const TYPE_TASK = 'TASK';
11
12 function __construct($user_id = null)
13 {
14 if (is_null($user_id))
15 {
16 global $USER;
17 $this->user_id = intval($USER->GetID());
18 }
19 else
20 {
21 $this->user_id = intval($user_id);
22 }
23 }
24
25 public function Chat($messageId)
26 {
27 $CIMMessage = new CIMMessage($this->user_id);
28 $message = $CIMMessage->GetMessage($messageId, true);
29 if (!$message)
30 return false;
31
32 $parentChatId = $message['CHAT_ID'];
33
34 $joinUsers = Array($this->user_id);
35 if (!\Bitrix\Im\User::getInstance($message['AUTHOR_ID'])->isExtranet())
36 {
37 $joinUsers[] = (int)$message['AUTHOR_ID'];
38 }
39
40 $chat = new CIMChat($this->user_id);
41 $chatId = $chat->Add(Array(
42 'USERS' => $joinUsers,
43 'ENTITY_TYPE' => 'THREAD',
44 'SKIP_ADD_MESSAGE' => 'Y',
45 ));
46
47 $parentMessageId = $this->SendMessage('', GetMessage('IM_SHARE_CHAT_CHAT'), $message, array(
48 'CHAT_ID' => $chatId,
49 'CHAT_MESSAGE' => 1,
50 'CHAT_LAST_DATE' => new \Bitrix\Main\Type\DateTime(),
51 'CHAT_USER' => array_unique($joinUsers),
52 ));
53
54 $sendMessage = '';
55 if ($message['MESSAGE'])
56 {
57 $sendMessage .= $message['MESSAGE']."\n";
58 }
59
60 $files = CIMMessageParam::Get($messageId, 'FILE_ID');
61 if (!empty($files))
62 {
63 foreach ($files as $fileId)
64 {
65 $sendMessage .= " [DISK={$fileId}]";
66 }
67 }
68
69 if ($message['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE)
70 {
71 $dialogId = $this->user_id;
72 $relations = \Bitrix\Im\Chat::getRelation($parentChatId, ['WITHOUT_COUNTERS' => 'Y']);
73 foreach ($relations as $relation)
74 {
75 if ($relation['USER_ID'] != $this->user_id)
76 {
77 $dialogId = $relation['USER_ID'];
78 }
79 }
80 $chatLink = '[USER='.$dialogId.']'.Bitrix\Im\User::getInstance($dialogId)->getFullName(false)."[/USER]";
81 }
82 else
83 {
84 $chatLink = '[CHAT='.$parentChatId.']'.$message['CHAT_TITLE']."[/CHAT]";
85 }
86
87 $message['MESSAGE'] = trim($sendMessage);
88 $message['MESSAGE_TYPE'] = IM_MESSAGE_CHAT;
89 $message['CHAT_ID'] = $chatId;
90
91 $noticeMessage = GetMessage('IM_SHARE_CHAT_CHAT_WELCOME', Array(
92 '#CHAT#' => $chatLink
93 ));
94 $pinMessageId = $this->SendMessage('', $noticeMessage, $message);
95
96 \Bitrix\Im\Model\ChatTable::update($chatId, Array(
97 'PARENT_ID' => $parentChatId,
98 'PARENT_MID' => $parentMessageId,
99 'PIN_MESSAGE_ID' => $pinMessageId,
100 ));
101
102 return true;
103 }
104
105 public function Task($messageId, $date = '')
106 {
107 if (!CModule::IncludeModule("tasks"))
108 return false;
109
110 $CIMMessage = new CIMMessage($this->user_id);
111 $message = $CIMMessage->GetMessage($messageId, true);
112
113 if (!$message)
114 return false;
115
116 $fields = [];
117
118 $taskTitle = mb_substr(trim(preg_replace(
119 ["/\n+/isu", '/\s+/isu'],
120 " ",
122 )), 0, 255);
123
124 $fields['TITLE'] = $taskTitle ?: CTextParser::clearAllTags(GetMessage('IM_SHARE_CHAT_TASK', ['#LINK#' => '']));
125
126 $fields['DESCRIPTION'] = self::PrepareText($message)."\n";
127 $fields['RESPONSIBLE_ID'] = $this->user_id;
128
129 if (
130 $message['AUTHOR_ID'] > 0 && $message['AUTHOR_ID'] != $this->user_id
131 && !\Bitrix\Im\User::getInstance($message['AUTHOR_ID'])->isExtranet()
132 && !\Bitrix\Im\User::getInstance($message['AUTHOR_ID'])->isBot()
133 )
134 {
135 $fields['AUDITORS'] = [$message['AUTHOR_ID']];
136 }
137
138 $fields['CREATED_BY'] = $this->user_id;
139
140 if (!empty($message['FILES']))
141 {
142 $diskUf = \Bitrix\Tasks\Integration\Disk\UserField::getMainSysUFCode();
143 $fields[$diskUf] = array_map(function($value){ return 'n'.$value;}, array_keys($message['FILES']));
144 }
145
146 $messageParams = Array();
147 if ($message['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE)
148 {
149 $messageParams = Array('LINK_ACTIVE' => Array((string)$this->user_id, (string)$message['AUTHOR_ID']));
150 }
151 else
152 {
153 $chat = \Bitrix\Im\Model\ChatTable::getById($message['CHAT_ID'])->fetch();
154 if ($chat['ENTITY_TYPE'] == 'LINES' && CModule::IncludeModule('crm'))
155 {
156 $fieldData = explode("|", $chat['ENTITY_DATA_1']);
157 if (isset($fieldData[0]) && $fieldData[0] == 'Y' && isset($fieldData[1]) && isset($fieldData[2]))
158 {
159 $crmType = \CCrmOwnerTypeAbbr::ResolveByTypeID(\CCrmOwnerType::ResolveID($fieldData[1]));
160 $fields['UF_CRM_TASK'] = [$crmType . '_' . $fieldData[2]];
161 }
162 }
163 if ($chat['ENTITY_TYPE'] == 'SONET_GROUP')
164 {
165 $fields['GROUP_ID'] = $chat['ENTITY_ID'];
166 }
167 else if ($chat['ENTITY_TYPE'] != 'SONET_GROUP')
168 {
169 $messageParams = Array('LINK_ACTIVE' => Array((string)$this->user_id, (string)$message['AUTHOR_ID']));
170 }
171 }
172
173 $date = intval($date);
174 if ($date > 0)
175 {
177 }
178 else
179 {
180 $results = \Bitrix\Main\Text\DateConverter::decode(\Bitrix\Im\Text::removeBbCodes($message['MESSAGE']), 1000);
181 if (!empty($results))
182 {
183 $fields['DEADLINE'] = $results[0]->getDate();
184 $userOffset = CTimeZone::GetOffset();
185 if ($userOffset != 0)
186 {
187 $fields['DEADLINE']->add(($userOffset*-1).' SECONDS');
188 }
189 }
190 }
191
192 $fields = $this->prepareTaskFlags($fields);
193
194 $handler = new \Bitrix\Tasks\Control\Task($this->user_id);
195 try
196 {
197 $task = $handler->add($fields);
198 }
199 catch (Exception $exception)
200 {
201 \Bitrix\Tasks\Internals\Log\LogFacade::logThrowable($exception);
202 return false;
203 }
204
205 $taskItem = new \Bitrix\Im\V2\Link\Task\TaskItem();
206 $taskItem
207 ->setEntityId($task->getId())
208 ->setChatId($message['CHAT_ID'])
209 ->setMessageId($messageId)
210 ->setAuthorId($this->user_id)
211 ->save()
212 ;
213
214 $link = CTaskNotifications::getNotificationPath(array('ID' => $this->user_id), $task->getId());
215
216 $this->SendMessage('', GetMessage('IM_SHARE_CHAT_TASK', Array('#LINK#' => $link)), $message, $messageParams, true);
217
218 return true;
219 }
220
221 public function Calendar($messageId, $date = '')
222 {
223 if (!CModule::IncludeModule("calendar"))
224 return false;
225
226 $CIMMessage = new CIMMessage($this->user_id);
227 $message = $CIMMessage->GetMessage($messageId, true);
228
229 if (!$message)
230 return false;
231
232 $dateFrom = new Bitrix\Main\Type\DateTime();
233 $dateFrom->add('1 DAY');
234
235 $date = intval($date);
236 if ($date > 0)
237 {
239 }
240 else
241 {
242 $results = \Bitrix\Main\Text\DateConverter::decode(\Bitrix\Im\Text::removeBbCodes($message['MESSAGE']), 1000);
243 if (!empty($results))
244 {
245 $dateFrom = $results[0]->getDate();
246 }
247 }
248
249 $userOffset = CTimeZone::GetOffset();
250 if ($userOffset != 0)
251 {
252 $dateFrom->add(($userOffset*-1).' SECONDS');
253 }
254
255 $dateTo = clone $dateFrom;
256 $dateTo->add('30 MINUTES');
257
258 $eventId = CCalendar::SaveEvent(array(
259 'arFields' => array(
260 'CAL_TYPE' => 'user',
261 'OWNER_ID' => $this->user_id,
262 'NAME' => CTextParser::clearAllTags($message['MESSAGE']),
263 'DESCRIPTION' => self::PrepareText($message),
264 'SKIP_TIME' => false,
265 'DATE_FROM' => $dateFrom,
266 'DATE_TO' => $dateTo,
267 ),
268 'userId' => $this->user_id,
269 'autoDetectSection' => true,
270 'autoCreateSection' => true
271 ));
272
273 if (!$eventId)
274 {
275 return false;
276 }
277
278 $link = CHTTP::urlAddParams(CCalendar::GetPathForCalendarEx($this->user_id), array('EVENT_ID' => $eventId));
279
280 $messageParams = Array('LINK_ACTIVE' => Array((string)$this->user_id));
281
282 $this->SendMessage('', GetMessage('IM_SHARE_CHAT_CALEND', Array('#LINK#' => $link)), $message, $messageParams, true);
283
284 return true;
285 }
286
287 public function Post($messageId)
288 {
289 global $DB;
290 if (!CModule::IncludeModule("socialnetwork") || !CModule::IncludeModule("blog"))
291 return false;
292
293 $CIMMessage = new CIMMessage($this->user_id);
294 $message = $CIMMessage->GetMessage($messageId, true);
295 if (!$message)
296 return false;
297
298 $pathToPost = COption::GetOptionString("socialnetwork", "userblogpost_page", "/company/personal/user/#user_id#/blog/#post_id#/", SITE_ID);
299 $pathToSmile = COption::GetOptionString("socialnetwork", "smile_page", false, SITE_ID);
300 $blogGroupID = COption::GetOptionString("socialnetwork", "userbloggroup_id", false, SITE_ID);
301
302 $blog = CBlog::GetByOwnerID($this->user_id);
303 if (!$blog)
304 $blog = $this->SonetPostCreateBlog($this->user_id, $blogGroupID, SITE_ID);
305
306 $title = trim(preg_replace(
307 array("/\n+/isu", '/\s+/isu'),
308 " ",
310 ));
311 $title = $title? $title: CTextParser::clearAllTags(GetMessage('IM_SHARE_CHAT_POST_2', Array('#LINK#' => '')));
312
313 $messagePost = self::PrepareText($message)."\n".GetMessage('IM_SHARE_POST_WELCOME');
314
315 $sonetRights = Array();
316 $messageParams = Array();
317 if ($message['CHAT_ID'] == CIMChat::GetGeneralChatId())
318 {
319 if (!\Bitrix\Socialnetwork\ComponentHelper::getAllowToAllDestination($this->user_id))
320 {
321 $sonetRights[] = "U".$this->user_id;
322 $messageParams = Array('LINK_ACTIVE' => Array((string)$this->user_id));
323 }
324 }
325 else
326 {
327 if ($message['MESSAGE_TYPE'] !== IM_MESSAGE_PRIVATE)
328 {
329 $chat = \Bitrix\Im\Model\ChatTable::getById($message['CHAT_ID'])->fetch();
330 if (
331 $chat['ENTITY_TYPE'] === 'SONET_GROUP'
332 && \Bitrix\Main\Loader::includeModule('socialnetwork')
333 )
334 {
335 if (
336 CSocNetFeaturesPerms::canPerformOperation($this->user_id, SONET_ENTITY_GROUP, $chat['ENTITY_ID'], 'blog', 'write_post')
337 || CSocNetFeaturesPerms::canPerformOperation($this->user_id, SONET_ENTITY_GROUP, $chat['ENTITY_ID'], 'blog', 'moderate_post')
338 || CSocNetFeaturesPerms::canPerformOperation($this->user_id, SONET_ENTITY_GROUP, $chat['ENTITY_ID'], 'blog', 'full_post')
339 )
340 {
341 $sonetRights = array('SG' . $chat['ENTITY_ID']);
342 }
343 else
344 {
345 return false;
346 }
347 }
348 }
349 }
350
351 if (empty($sonetRights))
352 {
353 $relations = CIMChat::GetRelationById($message['CHAT_ID'], false, true, false);
354 $sonetRights = [];
355 foreach ($relations as $relation)
356 {
357 if (\Bitrix\Im\User::getInstance($relation['USER_ID'])->isActive())
358 {
359 $sonetRights[] = "U".$relation['USER_ID'];
360 }
361 }
362 }
363
364 $postFields = array(
365 'TITLE' => $title,
366 'DETAIL_TEXT' => $messagePost,
367 'DETAIL_TEXT_TYPE' => 'text',
368 '=DATE_PUBLISH' => $DB->CurrentTimeFunction(),
369 'PUBLISH_STATUS' => BLOG_PUBLISH_STATUS_PUBLISH,
370 'CATEGORY_ID' => '',
371 'PATH' => CComponentEngine::MakePathFromTemplate($pathToPost, array("post_id" => "#post_id#", "user_id" => $this->user_id)),
372 'URL' => $blog['URL'],
373 'PERMS_POST' => array(),
374 'PERMS_COMMENT' => array(),
375 'MICRO' => "Y",
376 'SOCNET_RIGHTS' => $sonetRights,
377 '=DATE_CREATE' => $DB->CurrentTimeFunction(),
378 'AUTHOR_ID' => $this->user_id,
379 'BLOG_ID' => $blog['ID'],
380 "HAS_IMAGES" => "N",
381 "HAS_TAGS" => "N",
382 "HAS_PROPS" => "Y",
383 "HAS_SOCNET_ALL" => "N",
384 "SEARCH_GROUP_ID" => $blogGroupID,
385 "UF_BLOG_POST_FILE" => $message['FILES']? array_map(function($value){ return 'n'.$value;}, array_keys($message['FILES'])): Array()
386 );
387
388 $newId = CBlogPost::add($postFields);
389 if (!$newId)
390 return false;
391
392 $postFields["ID"] = $newId;
393
394 $arParamsNotify = Array(
395 "bSoNet" => true,
396 "UserID" => $this->user_id,
397 "allowVideo" => COption::GetOptionString("blog","allow_video", "Y"),
398 "PATH_TO_SMILE" => $pathToSmile,
399 "PATH_TO_POST" => $pathToPost,
400 "user_id" => $this->user_id,
401 "NAME_TEMPLATE" => CSite::GetNameFormat(false),
402 "SITE_ID" => SITE_ID
403 );
404 CBlogPost::Notify($postFields, $blog, $arParamsNotify);
405
406 BXClearCache(true, "/".SITE_ID."/blog/last_messages_list/");
407
408 $link = str_replace(array("#post_id#", "#user_id#"), Array($postFields["ID"], $this->user_id), $pathToPost);
409 $processed = CSocNetLogTools::ProcessPath(array("BLOG" => $link), $this->user_id, SITE_ID);
410
411 $this->SendMessage('', GetMessage('IM_SHARE_CHAT_POST_2', Array('#LINK#' => $processed["URLS"]["BLOG"])), $message, $messageParams);
412
413 return true;
414 }
415
416 private function SonetPostCreateBlog($userId, $blogGroupId, $siteId)
417 {
418 global $DB;
420 "=DATE_UPDATE" => $DB->CurrentTimeFunction(),
421 "GROUP_ID" => $blogGroupId,
422 "ACTIVE" => "Y",
423 "ENABLE_COMMENTS" => "Y",
424 "ENABLE_IMG_VERIF" => "Y",
425 "EMAIL_NOTIFY" => "Y",
426 "ENABLE_RSS" => "Y",
427 "ALLOW_HTML" => "N",
428 "ENABLE_TRACKBACK" => "N",
429 "SEARCH_INDEX" => "Y",
430 "USE_SOCNET" => "Y",
431 "=DATE_CREATE" => $DB->CurrentTimeFunction(),
432 "PERMS_POST" => Array(
433 1 => "I",
434 2 => "I" ),
435 "PERMS_COMMENT" => Array(
436 1 => "P",
437 2 => "P" ),
438 );
439
440 $bRights = false;
441 $rsUser = CUser::GetByID($userId);
442 $arUser = $rsUser->Fetch();
443 if($arUser["NAME"]."".$arUser["LAST_NAME"] == '')
444 {
445 $arFields["NAME"] = GetMessage("SNBPA_BLOG_NAME")." ".$arUser["LOGIN"];
446 }
447 else
448 {
449 $arFields["NAME"] = GetMessage("SNBPA_BLOG_NAME")." ".$arUser["NAME"]." ".$arUser["LAST_NAME"];
450 }
451
452 $arFields["URL"] = str_replace(" ", "_", $arUser["LOGIN"])."-blog-".$siteId;
453 $arFields["OWNER_ID"] = $userId;
454
455 $urlCheck = preg_replace("/[^a-zA-Z0-9_-]/is", "", $arFields["URL"]);
456 if ($urlCheck != $arFields["URL"])
457 {
458 $arFields["URL"] = "u".$userId."-blog-".$siteId;
459 }
460
461 if(CBlog::GetByUrl($arFields["URL"]))
462 {
463 $uind = 0;
464 do
465 {
466 $uind++;
467 $arFields["URL"] = $arFields["URL"].$uind;
468 }
469 while (CBlog::GetByUrl($arFields["URL"]));
470 }
471
472 $featureOperationPerms = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $arFields["OWNER_ID"], "blog", "view_post");
473 if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL)
474 {
475 $bRights = true;
476 }
477
478 $blogID = CBlog::Add($arFields);
479 BXClearCache(true, "/blog/form/blog/");
480 if ($bRights)
481 {
482 CBlog::AddSocnetRead($blogID);
483 }
484
485 return CBlog::GetByID($blogID);
486 }
487
488 private function prepareTaskFlags(array $fields): array
489 {
490 $popupOptions = CTasksTools::getPopupOptions();
491 $flags = [
492 'ALLOW_CHANGE_DEADLINE' => true,
493 'MATCH_WORK_TIME' => false,
494 'TASK_CONTROL' => ($popupOptions['task_control'] === 'Y'),
495 'ALLOW_TIME_TRACKING' => ($popupOptions['time_tracking'] === 'Y'),
496 ];
497 $formStateOptions = Util\Type::unSerializeArray(Util\User::getOption('task_edit_form_state'));
498
499 if (is_array($formStateOptions) && array_key_exists('FLAGS', $formStateOptions))
500 {
501 $flags = array_merge($flags, $formStateOptions['FLAGS']);
502 }
503
504 foreach ($flags as $name => $value)
505 {
506 $fields[$name] = ($value ? 'Y' : 'N');
507 }
508
509 return $fields;
510 }
511
512 public static function PrepareText($quoteMessage)
513 {
514 $quoteMessage['MESSAGE'] = preg_replace("/\[SEND(?:=(.+?))?\](.+?)?\[\/SEND\]/i", "$2", $quoteMessage['MESSAGE']);
515 $quoteMessage['MESSAGE'] = preg_replace("/\[PUT(?:=(.+?))?\](.+?)?\[\/PUT\]/i", "$2", $quoteMessage['MESSAGE']);
516 $quoteMessage['MESSAGE'] = preg_replace("/\[CALL(?:=(.+?))?\](.+?)?\[\/CALL\]/i", "$2", $quoteMessage['MESSAGE']);
517 //$quoteMessage['MESSAGE'] = preg_replace_callback('#<a(.*?)>(http[s]{0,1}:\/\/.*?)<\/a>#', array($this, "PrepareImages"), $quoteMessage['MESSAGE']);
518 $quoteMessage['MESSAGE'] = preg_replace("/(?:-{54}\n)(.[^\[\n]+)(?:.[^\n]*)?(.+?)(?:-{54})/s", '[QUOTE][B]$1[/B]$2[/QUOTE]', $quoteMessage['MESSAGE']);
519
520 $result = '[QUOTE]';
521 if ($quoteMessage['MESSAGE_TYPE'] != IM_MESSAGE_PRIVATE)
522 {
523 $chat = \Bitrix\Im\Model\ChatTable::getById($quoteMessage['CHAT_ID'])->fetch();
524 if ($chat)
525 {
526 $url = $chat['ENTITY_TYPE'] == 'LINES'? 'imol|'.$chat['ENTITY_ID']: 'chat'.$chat['ID'];
527 $messageContext = isset($quoteMessage['MESSAGE_ID']) ? '&IM_MESSAGE=' . (int)$quoteMessage['MESSAGE_ID'] : '';
528 $result .= "[B]".GetMessage('IM_SHARE_CHAT').":[/B] [URL=/online/?IM_DIALOG=".$url.$messageContext."]".$chat['TITLE']."[/URL]\n";
529 }
530 }
531
532 $userName = \Bitrix\Im\User::getInstance($quoteMessage['AUTHOR_ID'])->getFullName(false);
533 $result .= "[B]".$userName."[/B]\n";
534
535 $result .= HTMLToTxt(nl2br($quoteMessage['MESSAGE']), '', array(), 0);
536 if (!empty($quoteMessage['FILES']))
537 {
538 foreach ($quoteMessage['FILES'] as $file)
539 {
540 $result .= "[".GetMessage("IM_SHARE_FILE").": ".$file['name']."]\n";
541 }
542 }
543 $result .= '[/QUOTE]';
544
545 return $result;
546 }
547
548 private function SendMessage($startText, $endText, $quoteMessage, $messageParams = Array(), bool $skipUrlIndex = false)
549 {
550 $userName = \Bitrix\Im\User::getInstance($quoteMessage['AUTHOR_ID'])->getFullName(false);
551 $messageDate = FormatDate('X', $quoteMessage['DATE_CREATE'], time() + CTimeZone::GetOffset());
552
553
554 $sendMessage = $startText;
555 $sendMessage .= "------------------------------------------------------\n";
556 $sendMessage .= $userName." [".$messageDate."]\n";
557 if (trim($quoteMessage['MESSAGE']))
558 {
559 $sendMessage .= $quoteMessage['MESSAGE']."\n";
560 }
561 if (!empty($quoteMessage['FILES']))
562 {
563 foreach ($quoteMessage['FILES'] as $fileId => $file)
564 {
565 $sendMessage .= "[".GetMessage("IM_SHARE_FILE").": ".$file['name']."]\n";
566 }
567 }
568 $sendMessage .= "------------------------------------------------------\n";
569 $sendMessage .= $endText;
570
571 $messageParams['CLASS'] = "bx-messenger-content-item-system";
572
573 if ($quoteMessage['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE)
574 {
575 if ($quoteMessage['AUTHOR_ID'] == $this->user_id)
576 {
577 $relation = \Bitrix\Im\Model\RelationTable::getList(Array(
578 'select' => Array('USER_ID'),
579 'filter' => Array(
580 '=CHAT_ID' => $quoteMessage['CHAT_ID'],
581 '!=USER_ID' => $quoteMessage['AUTHOR_ID'],
582 )
583 ))->fetch();
584 if ($relation)
585 {
586 $quoteMessage['AUTHOR_ID'] = $relation['USER_ID'];
587 }
588 }
589
591 'FROM_USER_ID' => $this->user_id,
592 'TO_USER_ID' => $quoteMessage['AUTHOR_ID'],
593 'MESSAGE' => $sendMessage,
594 'PARAMS' => $messageParams,
595 'URL_PREVIEW' => 'N',
596 'SKIP_CONNECTOR' => 'Y',
597 'SKIP_COMMAND' => 'Y',
598 'SILENT_CONNECTOR' => 'Y',
599 'SKIP_URL_INDEX' => $skipUrlIndex ? 'Y' : 'N',
600 ));
601 }
602 else
603 {
604 $chat = \Bitrix\Im\Model\ChatTable::getById($quoteMessage['CHAT_ID'])->fetch();
605 if ($chat['ENTITY_TYPE'] === 'ANNOUNCEMENT')
606 {
608 'FROM_USER_ID' => $this->user_id,
609 'TO_USER_ID' => $this->user_id,
610 'MESSAGE' => $sendMessage,
611 'PARAMS' => $messageParams,
612 'URL_PREVIEW' => 'N',
613 'SKIP_CONNECTOR' => 'Y',
614 'SKIP_COMMAND' => 'Y',
615 'SILENT_CONNECTOR' => 'Y',
616 'SKIP_URL_INDEX' => $skipUrlIndex ? 'Y' : 'N',
617 ));
618 }
619 else
620 {
622 'TO_CHAT_ID' => $quoteMessage['CHAT_ID'],
623 'MESSAGE' => $sendMessage,
624 'PARAMS' => $messageParams,
625 'SYSTEM' => 'Y',
626 'URL_PREVIEW' => 'N',
627 'SKIP_CONNECTOR' => 'Y',
628 'SKIP_COMMAND' => 'Y',
629 'SILENT_CONNECTOR' => 'Y',
630 'SKIP_URL_INDEX' => $skipUrlIndex ? 'Y' : 'N',
631 ));
632 }
633 }
634
635 return $messageId;
636 }
637}
638?>
const BLOG_PUBLISH_STATUS_PUBLISH
Определения include.php:47
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
Определения callback_ismscenter.php:26
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static getRelation($chatId, $params=[])
Определения chat.php:93
static getInstance($userId=null)
Определения user.php:45
static decode($text, $limit=0)
Определения dateconverter.php:17
static createFromTimestamp($timestamp)
Определения datetime.php:246
static GetByOwnerID($ID, $arGroup=Array())
Определения blog.php:968
static GetByID($ID)
Определения blog.php:931
static GetByUrl($BLOG_URL, $arGroup=Array())
Определения blog.php:1026
static Notify($arPost, $arBlog, $arParams)
Определения blog_post.php:726
static GetOperationPerm($type, $id, $feature, $operation)
Определения group_features_perms.php:815
static Add($arFields)
Определения blog.php:8
static AddSocnetRead($ID)
Определения blog.php:452
static urlAddParams($url, $add_params, $options=[])
Определения http.php:521
Определения im_chat.php:15
static AddMessage($arFields)
Определения im_chat.php:2634
Определения im_message.php:14
static Add($arFields)
Определения im_message.php:28
Определения im_share.php:8
static PrepareText($quoteMessage)
Определения im_share.php:512
Task($messageId, $date='')
Определения im_share.php:105
const TYPE_TASK
Определения im_share.php:10
Post($messageId)
Определения im_share.php:287
Calendar($messageId, $date='')
Определения im_share.php:221
Chat($messageId)
Определения im_share.php:25
const TYPE_POST
Определения im_share.php:9
__construct($user_id=null)
Определения im_share.php:12
static ProcessPath($arUrl, $user_id, $explicit_site_id=false)
Определения log_tools.php:5283
static clearAllTags($text)
Определения textparser.php:2358
$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
$result
Определения get_property_values.php:14
const IM_MESSAGE_CHAT
Определения include.php:23
const IM_MESSAGE_PRIVATE
Определения include.php:22
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
$siteId
Определения ajax.php:8
FormatDate($format="", $timestamp=false, $now=false, ?string $languageId=null)
Определения tools.php:871
HTMLToTxt($str, $strSiteUrl="", $aDelete=[], $maxlen=70)
Определения tools.php:2587
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
BXClearCache($full=false, $initdir='')
Определения tools.php:5150
$name
Определения menu_edit.php:35
$value
Определения Param.php:39
$message
Определения payment.php:8
else $userName
Определения order_form.php:75
$title
Определения pdf.php:123
const SONET_ENTITY_GROUP
Определения include.php:117
const SONET_ENTITY_USER
Определения include.php:118
const SONET_RELATIONS_TYPE_ALL
Определения include.php:38
const SITE_ID
Определения sonet_set_content_view.php:12
$url
Определения iframe.php:7
$fields
Определения yandex_run.php:501