* @copyright Tamaranga */ class Radio extends Input { /** @var array список вариантов значений ['id' => 'title'] */ protected $options = []; /** @var array */ protected $label = []; /** * Инициализация поля * @return bool */ public function init() { if (! parent::init()) { return false; } $this->setTemplateName('radio'); $this->isUnionAllowed = true; return true; } /** * Генерация основного контента поля * @param array $data @ref данные * @return string HTML */ public function view(array &$data = []) { if (! isset($data['name'])) { $data['name'] = ''; } $data['attr'] = $this->attr; $data['label'] = $this->label; if (is_callable($this->options)) { $options = call_user_func($this->options, $this); } else { $options = $this->options; } $data['options'] = $options; return $this->render($data); } /** * Добавление варианта * @param string $name имя * @param string $title заголовок */ public function option($name, $title) { if (! is_array($this->options)) { return; } $this->options[$name] = $title; } /** * Получения списка вариантов значений * @return array */ public function options() { return $this->options; } }