1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
MessagePopupItem.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\V2\Message;
4
5use Bitrix\Im\V2\Chat\Comment\CommentPopupItem;
6use Bitrix\Im\V2\Message\Reaction\ReactionPopupItem;
7use Bitrix\Im\V2\MessageCollection;
8use Bitrix\Im\V2\Rest\PopupData;
9use Bitrix\Im\V2\Rest\PopupDataAggregatable;
10use Bitrix\Im\V2\Rest\PopupDataItem;
11
13{
17 private array $messageIds;
18 private ?MessageCollection $messages = null;
19 private bool $shortInfo;
20
21 public function __construct(array $messageIds, bool $shortInfo = false)
22 {
23 $this->messageIds = array_unique($messageIds);
24 $this->shortInfo = $shortInfo;
25 }
26
27 public static function getInstanceMessages(MessageCollection $messages, bool $shortInfo = false): self
28 {
29 $instance = new self($messages->getIds(), $shortInfo);
30 $instance->messages = clone $messages;
31
32 return $instance;
33 }
34
35 public function merge(PopupDataItem $item): PopupDataItem
36 {
37 if ($item instanceof self)
38 {
39 $this->messageIds = array_unique(array_merge($this->messageIds, $item->messageIds));
40 }
41
42 return $this;
43 }
44
45 public static function getRestEntityName(): string
46 {
47 return 'messages';
48 }
49
50 public function toRestFormat(array $option = []): array
51 {
52 $option['MESSAGE_SHORT_INFO'] = $this->shortInfo;
53
54 return $this->getMessages()->toRestFormat($option);
55 }
56
57 public function getPopupData(array $excludedList = []): PopupData
58 {
59 if ($this->shortInfo)
60 {
61 $excludedList[] = ReactionPopupItem::class;
62 $excludedList[] = CommentPopupItem::class;
63 }
64
65 return $this->getMessages()->getPopupData($excludedList);
66 }
67
68 private function getMessages(): MessageCollection
69 {
70 $this->messages ??= new MessageCollection(array_unique($this->messageIds));
71
72 return $this->messages;
73 }
74}
toRestFormat(array $option=[])
Определения MessagePopupItem.php:50
__construct(array $messageIds, bool $shortInfo=false)
Определения MessagePopupItem.php:21
getPopupData(array $excludedList=[])
Определения MessagePopupItem.php:57
static getInstanceMessages(MessageCollection $messages, bool $shortInfo=false)
Определения MessagePopupItem.php:27
merge(PopupDataItem $item)
Определения MessagePopupItem.php:35
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$instance
Определения ps_b24_final.php:14
$messages
Определения template.php:8
$option
Определения options.php:1711