3namespace Bitrix\Mail\Helper\Message;
5use Bitrix\Main\ArgumentException;
6use Bitrix\Main\ObjectPropertyException;
7use Bitrix\Main\SystemException;
8use Bitrix\Mail\Internals\MessageClosureTable;
12 private array $threadBeforeMessageId = [];
13 private array $threadAfterMessageId = [];
31 if ($this->threadBeforeMessageId)
33 $threadMessageIds = array_merge($this->threadBeforeMessageId, $threadMessageIds);
35 if ($this->threadAfterMessageId)
37 $threadMessageIds = array_merge($threadMessageIds, $this->threadAfterMessageId);
40 return $threadMessageIds;
49 $this->threadBeforeMessageId = [];
50 $this->threadAfterMessageId = [];
55 $this->threadBeforeMessageId = [];
57 $query = MessageClosureTable::query()
58 ->setSelect([
'PARENT_ID'])
59 ->where(
'MESSAGE_ID', $this->messageId)
60 ->where(
'PARENT_ID',
'<', $this->messageId)
61 ->setOrder([
'PARENT_ID' =>
'ASC'])
69 foreach (
$query->fetchAll() as $item)
71 $this->threadBeforeMessageId[] = (int)$item[
'PARENT_ID'];
77 $this->threadAfterMessageId = [];
79 $query = MessageClosureTable::query()
80 ->setSelect([
'MESSAGE_ID'])
81 ->where(
'PARENT_ID', $this->messageId)
82 ->where(
'MESSAGE_ID',
'>', $this->messageId)
83 ->setOrder([
'PARENT_ID' =>
'ASC'])
91 foreach (
$query->fetchAll() as $item)
93 $this->threadAfterMessageId[] = (int)$item[
'MESSAGE_ID'];
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
__construct(private int $messageId,)
loadFullThreadMessageIds(?int $limit=null)
loadAfterThreadMessageIds(?int $limit=null)
loadBeforeThreadMessageIds(?int $limit=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)