Как сделать фильтр в Joomla 3.4.4?

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 123 Просмотров
*

cddr43

  • Новичок
  • *
  • 2
  • 0
Всем привет!
Как сделать фильтр по остатку в Joomla?
Такой как на этом сайте сделаны - "Сортировать: по цене · по названию · по калибру"
http://www.fitili.ru/index.php?option=com_content&view=article&id=8&Itemid=8
Спасибо!

*

fsv

  • Практически профи
  • *******
  • 2506
  • 367
Re: Как сделать фильтр в Joomla 3.4.4?
« Ответ #1 : 04.06.2017, 18:02:21 »
Как сделать фильтр по остатку в Joomla?
В каком компоненте?
В образце - на com_content магазин сделали, жесть какая-то. Наверное, перехакано все, не обновишься. Так не надо делать. Поэтому сказать, как именно там, вряд ли кто, кроме автора, сможет.

Вообще, в категории фильтр сделать - изучите модель article, функции populateState и getListQuery в первую очередь. Через state нужные параметры фильтрации передавайте.
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

cddr43

  • Новичок
  • *
  • 2
  • 0
Re: Как сделать фильтр в Joomla 3.4.4?
« Ответ #2 : 04.06.2017, 18:57:17 »
В коде как-то так, я то добавил по аналогии, но сортирует оно странно, оно  просто групирует по наличию и выводит что-то вроде этого: 10 10 10 10 5 5 5 8 8 8 2 2 2 - и т.д.
Код
     print "<script >
      function loc_c(){
       document.getElementById('hr_cena').href=location.href+'&cena=1&nm=0&clbr=0&klv=0';
       document.getElementById('hr_name').href=location.href+'&nm=1&cena=0&clbr=0&klv=0';
       document.getElementById('hr_clbr').href=location.href+'&nm=0&cena=0&clbr=1&klv=0';
       document.getElementById('hr_klv_1').href=location.href+'&nm=0&klv=1&clbr=0&cena=0';
       }    
</script>";

     if ($_GET["id"]!=19){print "<div align=\"right\">Сортировать: <a id=hr_cena href=\"\">цена</a> &middot;
       <a id=hr_name href=\"\">название</a> &middot; <a id=hr_clbr href=\"\">калибр</a> &middot; <a id=hr_klv_1 href=\"\">остаток</a></div>";}
    
$psort="name";
if (isset($_GET["cena"]) && $_GET["cena"]==1){$psort="cena_1";}
if (isset($_GET["nm"]) && $_GET["nm"]==1){$psort="name";}
if (isset($_GET["clbr"]) && $_GET["clbr"]==1){$psort="kalibr";}
     if (isset($_GET["klv"]) && $_GET["klv"]==1){$psort="cena_1";}

if (isset($_SESSION['id_dom']) && ($_SESSION['id_dom']=="974" or $_SESSION['id_dom']=="975")){$admn="";} else {$admn="and klv_1!='' and klv_1!='0'";}
$query="SELECT * FROM `sdkgrb_baze` WHERE ( `ef_1`='".$_GET["ef"]."' or `ef_2`='".$_GET["ef"]."' or `ef_3`='".$_GET["ef"]."' or `ef_4`='".$_GET["ef"]."' or `ef_5`='".$_GET["ef"]."' or `ef_6`='".$_GET["ef"]."' or `ef_7`='".$_GET["ef"]."') ".$admn." order by $psort ASC";
     $res=mysql_query($query);


Как сделать нормальный вывод? От наибольшего до наименьшего количества?
« Последнее редактирование: 04.06.2017, 20:22:31 от cddr43 »