Фильтр по категории в фильтре записей типов контента

Фильтр по категории в фильтре записей типов контента
 
 
Править будем файл templates/ваш шаблон/ui/filter-panel.tpl.php
 

1


Перед:
<div class="filter-panel gui-panel <?php echo $css_prefix;?>-filter">
Добавим:
<?php
    $core = cmsCore::getInstance();
    $uri = $core->uri;
$current_controller = $core->controller;
    $current_ctype = $core->request->get('ctype_name');
$current_slug = $core->request->get('slug');
$is_category_view = $current_controller=='content' && !empty($current_ctype) && !mb_strstr($uri, '.html') && $current_slug ? true : false;
 
if(!empty($current_ctype)){
$cats  = cmsCore::getModel('content')->getCategoriesTree($current_ctype);
 
            if ($cats){
foreach($cats as $cat){
if($cat['id']==1){
$cat['title'] = 'Все категории';
}
if ($cat['ns_level'] > 1){
$cat['title'] = str_repeat('-', $cat['ns_level']) . ' ' . $cat['title'];
}
$cats_list[$cat['slug']] = $cat['title'];
 
}
}
$current_category = $is_category_view ? $current_slug : '';
}
?>
 

2

Сразу после:

<div class="fields">
 
Добавим:
 
<?php if(!empty($current_ctype) && !empty($cats_list)){ ?>
<div class="field ft_category_id">
               <div class="title">Категория</div>
<div class="value form-group">
               <?php echo html_select('category_id', $cats_list, $current_category, array('class'=>'form-control','id'=>'ft_category_id')); ?>
</div>
</div>
<?php } ?>
 

3

Найдём две строки:
 
 <div class="buttons">
                    <?php echo html_submit(LANG_FILTER_APPLY); ?>
 
Заменим на:
 
<div class="buttons" id="filter_form_buttons">               
<?php echo html_submit(LANG_FILTER_APPLY, 'submit', array('class'=>'btn-submit')); ?>
 

4

В самом конце файла добавим:

 
<?php if(!empty($current_ctype) && !empty($cats_list)){ ?>
<script>
 
   $('.btn-submit','#filter_form_buttons').click(function() {
 
    $target = $(this);
$parent = $target.closest('#filter_form_buttons');
$form = $parent.closest('form');
$cats_list = $('#ft_category_id',$form);
$cat_slug = $cats_list.val();
 
$form.attr('action','/<?php echo $current_ctype; ?>/'+$cat_slug);
$form.submit();
 
    });
 
</script>
<?php } ?>
 
Системный компонент, виджет Поиск
Тип системного дополнения Компонент
22:29
07:09
а как в фильтре категорий сделать следующее:
— при выборе категории открывается фильтр свойств выбранной категории

НазадПоделиться на сайт

Код для вставки на сайт:
Пример отображения:

X