34 lines
975 B
PHP
34 lines
975 B
PHP
<?php
|
|
|
|
namespace ctiso\Form;
|
|
use ctiso\Form\Field;
|
|
|
|
class Select extends Field
|
|
{
|
|
public $options = array();
|
|
|
|
public function __construct ($input, $factory) {
|
|
parent::__construct($input);
|
|
|
|
if ($factory != null) {
|
|
$factory->create($this, $input);
|
|
} else if (isset($input['options.pair'])) {
|
|
$this->options = $this->optionsPair($input['options.pair']);
|
|
} else if (isset($input['options'])) {
|
|
$this->options = $input['options'];
|
|
}
|
|
|
|
foreach ($this->options as &$option) {
|
|
$option['selected'] = false;
|
|
$option['class'] = (isset($option['class'])) ? $option['class'] : false;
|
|
}
|
|
}
|
|
|
|
public function optionsPair($list, $selected = false) {
|
|
$result = array();
|
|
foreach ($list as $key => $value) {
|
|
$result [] = array('value' => $key, 'name' => $value, 'selected' => $key == $selected);
|
|
}
|
|
return $result;
|
|
}
|
|
}
|