<?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)
];
}
}