Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Option/UserGroup.php
<?php

namespace XF\Option;

class
UserGroup extends AbstractOption
{
    public static function
renderSelect(\XF\Entity\Option $option, array $htmlParams)
    {
       
$data = self::getSelectData($option, $htmlParams);

        return
self::getTemplater()->formSelectRow(
           
$data['controlOptions'], $data['choices'], $data['rowOptions']
        );
    }

    public static function
renderSelectMultiple(\XF\Entity\Option $option, array $htmlParams)
    {
       
$data = self::getSelectData($option, $htmlParams);
       
$data['controlOptions']['multiple'] = true;
       
$data['controlOptions']['size'] = 8;

        return
self::getTemplater()->formSelectRow(
           
$data['controlOptions'], $data['choices'], $data['rowOptions']
        );
    }

    protected static function
getSelectData(\XF\Entity\Option $option, array $htmlParams)
    {
       
/** @var \XF\Repository\UserGroup $userGroupRepo */
       
$userGroupRepo = \XF::repository('XF:UserGroup');

       
$choices = $userGroupRepo->getUserGroupOptionsData(true, 'option');
       
$choices = array_map(function($v) {
           
$v['label'] = \XF::escapeString($v['label']);
            return
$v;
        },
$choices);

        return [
           
'choices' => $choices,
           
'controlOptions' => self::getControlOptions($option, $htmlParams),
           
'rowOptions' => self::getRowOptions($option, $htmlParams)
        ];
    }
}