20 $contextId =
$event->getParameter(
'id');
21 $contextParameters =
$event->getParameter(
'params');
23 $isAddedQuote = filter_var(($contextParameters[
'isAddedQuote'] ??
null), FILTER_VALIDATE_BOOLEAN);
25 $messageIds = $contextParameters[
'messageIds'];
29 return [
'messages' => []];
32 if (!self::isNeededMailMessageContext(
$moduleId, $contextId, $isAddedQuote,
$messageId, $messageIds))
34 return [
'messages' => []];
40 $messageThreadLoader->loadFullThreadMessageIds();
41 $messageIds = $messageThreadLoader->getThreadMessageIds();
46 return [
'messages' => []];
49 return self::loadMessages($messageIds);
52 private static function isNeededMailMessageContext(
57 ?
array $messageIds =
null,
60 if (
$moduleId !==
'mail' || $isAddedQuote !==
false)
65 if (!str_starts_with($contextId,
'mail_reply') && !str_starts_with($contextId,
'crm_mail_reply'))
82 private static function loadMessages(
array $messageIds):
array
84 $userId = CurrentUser::get()->getId();
85 $messageIds = array_filter($messageIds,
function ($item) {
86 return filter_var($item, FILTER_VALIDATE_INT) !==
false;
89 if (empty($messageIds))
91 return [
'messages' => []];
96 ->where(
'ID', end($messageIds))
103 return [
'messages' => []];