3namespace Bitrix\Im\V2\Message\Reaction;
5use Bitrix\Im\V2\Entity\User\UserShortPopupItem;
6use Bitrix\Im\V2\Rest\PopupData;
7use Bitrix\Im\V2\Rest\PopupDataAggregatable;
8use Bitrix\Im\V2\Rest\RestConvertible;
9use Bitrix\Main\Engine\Response\Converter;
15 private int $messageId;
19 private array $reactionCounters = [];
23 private array $reactionUsers = [];
27 private array $ownReactions = [];
28 private bool $haveDisplayedUsers =
false;
29 private bool $haveUndisplayedUsers =
false;
33 $this->messageId = $messageId;
43 $this->reactionCounters[$reaction] =
$counter;
45 if (
$counter <= self::COUNT_DISPLAYED_USERS)
51 $this->haveUndisplayedUsers =
true;
59 if (isset($this->reactionUsers[$reaction]))
61 $this->reactionUsers[$reaction] = array_merge($this->reactionUsers[$reaction], $users);
65 $this->reactionUsers[$reaction] = $users;
73 $this->ownReactions[] = $reaction;
85 return empty($this->ownReactions) && $this->haveUndisplayedUsers;
90 return !empty($this->reactionCounters);
95 return $this->haveDisplayedUsers;
100 $converter =
new Converter(Converter::KEYS | Converter::VALUES | Converter::TO_LOWER | Converter::LC_FIRST);
103 'reactionCounters' => $converter->process($this->reactionCounters),
104 'reactionUsers' => $converter->process($this->reactionUsers),
107 if (!isset(
$option[
'WITHOUT_OWN_REACTIONS']) ||
$option[
'WITHOUT_OWN_REACTIONS'] ===
false)
109 $rest[
'ownReactions'] = $converter->process($this->ownReactions);
132 foreach ($this->reactionUsers as $reaction)
134 foreach ($reaction as
$user)
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
static getRestEntityName()
addUsers(string $reaction, array $users)
const COUNT_DISPLAYED_USERS
toRestFormat(array $option=[])
addCounter(string $reaction, int $counter)
getPopupData(array $excludedList=[])
static getByMessageId(int $messageId)
__construct(int $messageId)
addOwnReaction(string $reaction)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)