<?php
namespace MattC\Whatever\Option;
use XF\Entity\Option;
use XF\Option\AbstractOption;
use XFMG\Repository\Category as CategoryRepository;
class Category extends AbstractOption
{
public static function renderSelectMultiple(Option $option, array $htmlParams)
{
$data = static::getSelectData($option, $htmlParams);
$data['controlOptions']['multiple'] = true;
$data['controlOptions']['size'] = 8;
return static::getTemplater()->formSelectRow(
$data['controlOptions'],
$data['choices'],
$data['rowOptions']
);
}
protected static function getSelectData(Option $option, array $htmlParams)
{
$categoryRepo = \XF::repository(CategoryRepository::class);
$choices = $categoryRepo->getCategoryOptionsData(true);
$choices = array_map(function ($v)
{
$v['label'] = \XF::escapeString($v['label']);
return $v;
}, $choices);
return [
'choices' => $choices,
'controlOptions' => static::getControlOptions($option, $htmlParams),
'rowOptions' => static::getRowOptions($option, $htmlParams),
];
}
}