Как добавить фильтр в свой компонент Joomla?

Допустим? у нас есть какая-то таблица, в которой записи подразделяются на категории. Для организации дерева категорий будем использовать категории Joomla. 

Теперь добавим поле фильтра на страницу с записями

<fieldset id="filter-bar">
<div class="filter-select fltrt">
<select name="filter_category_id" class="inputbox" onchange="this.form.submit()">
 <option value=""><?php echo JText::_(&#39;JOPTION_SELECT_CATEGORY&#39;);?></option>
 <?php echo JHtml::_(&#39;select.options&#39;, JHtml::_(&#39;category.options&#39;, &#39;com_jdvimageslist&#39;), &#39;value&#39;, &#39;text&#39;, $this->filter_category_id); ?>
</select>
</div>
</fieldset>

Форма отправляется после выбора категории из списка

onchange="this.form.submit()"

Нужно чтобы значение категории запоминалось в сессии и использовалось в выборке записей.

Выборка записей находится в файле соответствующей модели:

protected function getListQuery()
{
  // Create a new query object.
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// Select some fields
$query->select(&#39;id,images,title_alias,introtext,urls,catid&#39;);
 
$app = &JFactory::getApplication(&#39;site&#39;);
 
$option = JRequest::getWord(&#39;option&#39;);
$catid = $app->getUserStateFromRequest($option.&#39;.f_categories&#39;, &#39;filter_category_id&#39;, 0);
 
if ($catid){
$query->where("catid=$catid");
}
 
$query->from(&#39;#__jdvimageslist&#39;);
return $query;
}

в результате переменная filter_category_id будет браться из отправляемой формы и id категории будет заноситься в сессию в область 

$option.&#39;.f_categories&#39;

и применяться в SELECT запросе

if ($catid){
$query->where("catid=$catid");
}

 

Чтобы сделать комментарий, нужно авторизоваться на сайте!