Я реализую поисковую панель Joomla в компоненте.Но по некоторым причинам он не загружает userState, поэтому выпадающие списки не работают.Фильтры работают правильно.
Форма XML:
<?xml version="1.0" encoding="utf-8"?>
<form>
<fields name="filter">
<field
name="filter_search"
type="text"
label="COM_BANNERS_SEARCH_IN_TITLE"
hint="JSEARCH_FILTER"
class="js-stools-search-string"
/>
</fields>
<fields name="list">
<field name="type" default="0" type="list" onchange="this.form.submit();" label="COM_RDAUTOS_CATEGORY_TYPE">
<option value="0">COM_RAUTOS_PLS_SELECT</option>
<option value="1">COM_RDAUTOS_VEHICLES</option>
<option value="2">COM_RDAUTOS_PARTS</option>
</field>
<field name="state" default="0" type="list" onchange="this.form.submit();" label="COM_RAUTOS_PLS_SELECT">
<option value="0">COM_RAUTOS_PLS_SELECT</option>
<option value="1">COM_RAUTOS_UNPUBLISHED</option>
<option value="2">COM_RAUTOS_PUBLISHED</option>
</field>
</fields>
</form>
Я добавил это в свой файл view.html.php:
// Joomla Core functionality for filtering
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
Я добавил это к модели:
function __construct($config = [])
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = [
'state',
'type',
];
}
parent::__construct($config);
}
И это для запроса переменных:
$state = $this->getState('list.state');
$type = $this->getState('list.type');
$search = $this->getState('filter.filter_search');
default.php
echo JLayoutHelper::render('joomla.searchtools.default', ['view' => $this]);
После того, как я выбрал значение на панели инструментов поиска, он выполняет фильтрацию и все работает, но выбранное значение не выбирается в полях выбора.Поэтому мы не знаем, что было отфильтровано.
Кто-нибудь может знать решение?