View file MMO-Hide-2.3.4/upload/src/addons/MMO/Hide/BbCode/Tag/HideGroups.php

File size: 1.41Kb
<?php

namespace MMO\Hide\BbCode\Tag;

use MMO\Hide\BbCode\AbstractTag;
use XF\Repository\UserGroupRepository;

class HideGroups extends AbstractTag
{
    /**
     * @inheritDoc
     */
    public function render($content, array $tagChildren, $tagOption, array $tag, array $options)
    {
        $canView = false;
        $tagOptions = explode(',', $tagOption);
        $groupsAvailable = $this->repository(UserGroupRepository::class)->getUserGroupTitlePairs();
        $groupsValid = [];

        foreach ($tagOptions as $group_id)
        {
            if (empty($groupsAvailable[$group_id]))
            {
                continue;
            }

            $groupsValid[$group_id] = $groupsAvailable[$group_id];
            if ($this->visitor()->isMemberOf($group_id))
            {
                $canView = true;
            }
        }

        if (!$groupsValid)
        {
            $groupsValid[] = \XF::phrase('n_a');
        }

        $params = [
            'groups' => \implode(', ', $groupsValid)
        ];

        $title = [
            'visible' => $this->getTitleVisible('mh_tag_groups', $params),
            'hidden' => $this->getTitleHidden('mh_tag_groups', $params)
        ];

        return $this->renderTemplate($content, $title, [
            'canView' => $canView,
            'options' => $options,
            'tag' => $tag['tag']
        ]);
    }
}