<?php
 namespace Engine\Form\Input; class Radio extends \Engine\Form\Input\ElementAbstract { protected $class = "radio"; protected $possibleValues = []; public function __construct($label=null, $name=null, $value=null, $possibleValues=null) { parent::__construct($label, $name, $value); $this->possibleValues = (array)$possibleValues; $this->setStyle('renderMode', 'inline'); } protected function getTemplateParams($templateClass = null, $parentElement = null) { $params = parent::getTemplateParams($templateClass, $parentElement ); $params['possibleValues'] = $this->getPossibleValues(); return $params; } public function getPossibleValues() { if($this->possibleValues) { return $this->possibleValues; } $this->possibleValues = $this->determinePossibleValues(); return $this->possibleValues; } public function setPossibleValues($possibleValues) { $this->possibleValues = $possibleValues; return $this; } protected function determinePossibleValues() { throw new \Exception(sprintf("determinePossibleValues() is not implemented for %s", get_class($this))); } public function renderFilterOverview() { $values = $this->getPossibleValues(); return $values[$this->getValue()]; } } 