30 lines
1.4 KiB
PHP
30 lines
1.4 KiB
PHP
|
|
<?
|
|||
|
|
/**
|
|||
|
|
* Copyright (c) BestWebService.ru
|
|||
|
|
* Author: Gvozdikov Victor Antonovich
|
|||
|
|
* Редактирование кода запрещено. В случае распространения кода обязательно должен сохраняться этот copyright.
|
|||
|
|
* Код распространяется как есть и не даёт гаранитий 100% стабильности. Автор не несёт ответственности за выполнения кода. Все права на код принадлежат Гвоздикову Виктор Антоновичу.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
namespace ui\input;
|
|||
|
|
|
|||
|
|
class Select_Multi extends Input {
|
|||
|
|
public function render(array $opt = array()): string{
|
|||
|
|
$vals = [];
|
|||
|
|
$sels = is_array($c = $this->options[Input::VALUE]) ? $c : [$c];
|
|||
|
|
foreach ($this->options[Input::OPTIONS] as $k=>$v){
|
|||
|
|
if(is_array($v)){
|
|||
|
|
$name = $v['name'];
|
|||
|
|
} else {
|
|||
|
|
$name = $v;
|
|||
|
|
}
|
|||
|
|
$selected = in_array($k,$sels);
|
|||
|
|
$vals[] = '<option value="'.$k.'" '.($selected?'selected':'').'>'.$name.'</option>';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return '<div class="form-group">
|
|||
|
|
<label>'.$this->label.'</label>
|
|||
|
|
<select class="select" data-placeholder="'.$this->options[self::PLACEHOLDER].'" multiple="multiple" name="'.$this->name.'">'.implode($vals).'</select>
|
|||
|
|
</div>';
|
|||
|
|
}
|
|||
|
|
}
|