%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/ui/filter/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/ui/filter/widgets/FilterInput.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*
*/
namespace humhub\modules\ui\filter\widgets;
use humhub\components\Widget;
use Yii;
/**
* Widget for rendering a single filter.
* @since 1.3
*/
class FilterInput extends Widget
{
/**
* @var array input options
*/
public $options = [];
/**
* @var string filter id
*/
public $id;
/**
* @var string filter title
*/
public $title;
/**
* @var mixed input value
*/
public $value;
/**
* @var int sort order definition
*/
public $sortOrder;
/**
* @var string css class used for this filter
*/
public $filterClass = 'filterInput';
/**
* @var string defines the filter category, which is used as the key for filter requests as data e.g. {filters = [filter_id_x, filter_id_y]}
*/
public $category = 'filters';
/**
* @var bool defines if the filter category can consist of multiple filter values from different filter inputs
*/
public $multiple = false;
/**
* @var string sets an identifier for this input type and is added as data-filter-type
*/
public $type;
/**
* @var string view to render the input
*/
public $view;
/**
* @inheritdoc
*/
public function init()
{
parent::init();
$this->initFromRequest();
}
/**
* Initialize current value from request
*/
protected function initFromRequest()
{
$filters = Yii::$app->request->get($this->category);
if (isset($filters[$this->id])) {
$this->value = $filters[$this->id];
}
}
/**
* @inheritdoc
*/
public function run()
{
$this->prepareOptions();
return $this->render($this->view, $this->getWidgetOptions());
}
protected function prepareOptions()
{
$this->options['data-filter-id'] = $this->id;
$this->options['data-filter-type'] = $this->type;
$this->options['data-filter-category'] = $this->category;
$this->options['class'] = $this->filterClass;
if($this->multiple) {
$this->options['data-filter-multiple'] = 1;
}
}
protected function getWidgetOptions()
{
return [
'options' => $this->options,
'title' => $this->title,
'value' => $this->value
];
}
}