Фильтр контента не работает с главной страницы

#1 30 марта 2016 в 18:28
Привет!

тема поднималась в 2014году, однако на версии 2.4.0 столкнулся с проблемой.

Если виджет фильтра по контенту стоит на главное, то он не работает.

Старая тема тут — > instantcms.ru/forum/thread19556.html
#2 18 мая 2016 в 00:04
driverriga, актуально. Вывел Мапс и фильтр на главной и обнаружил, что контент фильтруется только на странице компонента или в категориях.
#3 18 мая 2016 в 08:59
Угу. в 2.4.0 точно работало. Сейчас страница обновляется и все...
Поломали либо в 2.5.0 либо в 2.5.1. Вечером буду ковыряться.

Уточню: при закреплении типа контента на главной в нем не работает фильтр не только в виджете, но и над контентом… Стоит перейти по датасету, и там уже все ок.
#4 18 мая 2016 в 21:16
Я так понимаю проблема в \system\controllers\content\actions\category_view.php
Где-то в районе определения frontpage или нет. Там происходит сбой в сравнении и идет редирект на главную.

Так как, если вручную подставить параметры в url сайт/?title=котенок&price%5Bfrom%5D=&price%5Bto%5D=&date_pub%5Bfrom%5D=&date_pub%5Bto%5D= то фильтр работает.

Помогите разобраться.

В настройках сайта указать выводить объявления на главной. Затем воспользоваться фильтром на главной странице — в 2.5.1 получим просто рефреш страницы. В 2.4.0 фильтр работал и на главной.
#5 19 мая 2016 в 11:09
Открываем файл \system\controllers\content\actions\category_view.php
и комментируем строки

  1. if (!$is_frontpage && cmsConfig::get('frontpage') == "content:{$ctype['name']}" && $slug == 'index' && !$dataset && $page==1){
  2. $query = cmsCore::getInstance()->uri_query;
  3. if ($query){
  4. $this->redirect(href_to_home() . "/?" . http_build_query($query));
  5. } else {
  6. $this->redirectToHome();
  7. }
  8. }
Моих знаний хватает лишь на то, что тут, если в настройках выбрано выводить контент на главной, идет редирект с типа контента на главную. И, видимо, с потерей всех post данных, которые передает фильтр. Только get параметры запоминаются. Можно фильтр передавать и с помощью get, но при больших формах в фильтре будут проблемы...

Если эти строки закомментировать, то после запроса в фильтре вы будете попадать на страницу списка контента, а не на главную. Не по фен-шую, но зато фильтр работает.
#6 23 июня 2016 в 17:03
/templates/default/assets/ui/filter-panel.tpl.php

  1. <form action="<?php echo $form_url; ?>" method="post">
меняем на

  1. <form action="<?php echo $form_url; ?>" method="get">
Только так.
#7 23 июня 2016 в 17:07
Да актуально, сталкивался с такой проблемой. Fuze спасибо. Но вроде в 2.4 тоже не работал фильтр с главной
#8 23 июня 2016 в 21:21

решать проблему нужно формированием правильного адреса

Геннадий Иванович
В нашем случае $page_url = $core->uri_absolute.
#9 24 июня 2016 в 05:25

В нашем случае $page_url = $core->uri_absolute.

Loadырь
Спасибо за подсказку! Я был неправ.
#10 8 февраля 2017 в 07:08


/templates/default/assets/ui/filter-panel.tpl.php

Fuze

А у меня в этом файле уже get стоит, но фильтр на главной не работает. (Система версии 2.6.1)


Upd.
Воспользовался вариантом Zau4man. Меня устроило, спасибо ему.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.