1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
controller.php
См. документацию.
1<?php
2
4
13
14final class Controller
15{
16
17 public static function onContextGetMessages(Event $event): array
18 {
19 $moduleId = $event->getParameter('module');
20 $contextId = $event->getParameter('id');
21 $contextParameters = $event->getParameter('params');
22
23 $isAddedQuote = filter_var(($contextParameters['isAddedQuote'] ?? null), FILTER_VALIDATE_BOOLEAN);
24 $messageId = $contextParameters['messageId'];
25 $messageIds = $contextParameters['messageIds'];
26
27 if (!$moduleId || !$contextId)
28 {
29 return ['messages' => []];
30 }
31
32 if (!self::isNeededMailMessageContext($moduleId, $contextId, $isAddedQuote, $messageId, $messageIds))
33 {
34 return ['messages' => []];
35 }
36
37 if (!$messageIds)
38 {
39 $messageThreadLoader = new MessageThreadLoader($messageId);
40 $messageThreadLoader->loadFullThreadMessageIds();
41 $messageIds = $messageThreadLoader->getThreadMessageIds();
42 }
43
44 if (!$messageIds)
45 {
46 return ['messages' => []];
47 }
48
49 return self::loadMessages($messageIds);
50 }
51
52 private static function isNeededMailMessageContext(
53 string $moduleId,
54 string $contextId,
55 bool $isAddedQuote,
56 ?int $messageId = null,
57 ?array $messageIds = null,
58 ): bool
59 {
60 if ($moduleId !== 'mail' || $isAddedQuote !== false)
61 {
62 return false;
63 }
64
65 if (!str_starts_with($contextId, 'mail_reply') && !str_starts_with($contextId, 'crm_mail_reply'))
66 {
67 return false;
68 }
69
70 if ($messageId < 0 && empty($messageIds))
71 {
72 return false;
73 }
74
75 return true;
76 }
77
82 private static function loadMessages(array $messageIds): array
83 {
84 $userId = CurrentUser::get()->getId();
85 $messageIds = array_filter($messageIds, function ($item) {
86 return filter_var($item, FILTER_VALIDATE_INT) !== false;
87 });
88
89 if (empty($messageIds))
90 {
91 return ['messages' => []];
92 }
93
94 $message = MailMessageTable::query()
95 ->setSelect(['*'])
96 ->where('ID', end($messageIds))
97 ->exec()
98 ->fetch()
99 ;
100
101 if (!$message || !Mail\Helper\Message::hasAccess($message, $userId))
102 {
103 return ['messages' => []];
104 }
105
106 $messages[] = [
107 'content' => $message['BODY']]
108 ;
109
110 return [
111 'messages' => $messages,
112 ];
113 }
114}
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 onContextGetMessages(Event $event)
Определения controller.php:17
Определения event.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
$moduleId
Определения blacklist.php:3
$message
Определения payment.php:8
$event
Определения prolog_after.php:141
$messages
Определения template.php:8