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

File size: 1.23Kb
<?php

namespace MMO\Hide\BbCode\Tag;

use MMO\Hide\BbCode\AbstractTag;

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

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

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

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

        $title = \XF::phrase('mh_tag_groups', [
            'groups' => \implode(', ', $groups_valid)
        ])->render('raw');

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