File size: 1.6Kb
<?php
namespace MMO\Hide\BbCode\Tag;
use MMO\Hide\BbCode\AbstractTag;
class HideReacts extends AbstractTag
{
/**
* @inheritDoc
*/
public function render($content, array $tagChildren, $tagOption, array $tag, array $options)
{
$canView = false;
$requiredReactions = \explode(',', $tagOption);
$reactedUsers = $options['entity']['reaction_users'] ?? [];
$userReactionId = null;
if(isset($options['entity']))
{
foreach ($reactedUsers AS $reactedUser)
{
if ($reactedUser['user_id'] != $this->visitor()->user_id)
{
continue;
}
if (\in_array($reactedUser['reaction_id'], $requiredReactions))
{
$canView = true;
$userReactionId = $reactedUser['reaction_id'];
}
}
}
$hiddenTitle = $this->templater->renderTemplate('public:mh_tag_react_hidden', [
'reactions' => $requiredReactions
]);
// For visible state, use template showing the user's reaction
$visibleTitle = $this->templater->renderTemplate('public:mh_tag_react_visible', [
'reaction_id' => $userReactionId
]);
$title = [
'visible' => $visibleTitle,
'hidden' => $hiddenTitle
];
return $this->renderTemplate($content, $title, [
'canView' => $canView,
'options' => $options,
'tag' => $tag['tag']
]);
}
}