Предупредить посетителя, что материалы отфильтрованы

More
6 years 1 week ago - 6 years 1 week ago #8136 by Женя Чугаев
Подскажите, каким образом я могу отследить, применен ли на странице фильтр? Мне это нужно, чтобы сформировать сообщение на странице о том, что материалы отфильтрованы. Сейчас это возможно только непосредственно после фильтрации, поскольку передаются параметры запросом, однако если покинуть страницу, а потом на нее вернуться, запросы отследить уже нельзя, а материалы остаются отфильтрованными, и пользователь видит не все материалы, а сообщения, что они отфильтрованы, не видит.

Пока на ум приходит только js скриптом пробежаться по всем полям и проверить, установлен ли хоть один чекбокс и совпадают ли значения min-max диапазонов со значениями from-to. Но это костыль. Как вообще фильтр запоминает, какие значения установлены? Где хранится эта информация?
Last edit: 6 years 1 week ago by Женя Чугаев.

Please Log in to join the conversation.

More
6 years 1 week ago #8137 by JoomLine
Данные о фильтрации хранятся в сессии, если конкретно в userState
The following user(s) said Thank You: Женя Чугаев

Please Log in to join the conversation.

More
6 years 1 week ago - 6 years 1 week ago #8139 by Женя Чугаев
Не получается извлечь данные о фильтрации.

$session = JFactory::getSession();
$state = $session->get('userState');
print_r($state);

Приведенный код ничего не выводит, переменная $state пуста. Подскажите пожалуйста, как извлечь данные о фильтрации?
Last edit: 6 years 1 week ago by Женя Чугаев.

Please Log in to join the conversation.

More
6 years 1 week ago - 6 years 1 week ago #8140 by Женя Чугаев
Пытался отследить состояние переменной $jlContentFieldsFilter, в которую записываются все установленные фильтры. Но так как у меня в фильтре используются, диапазоны, то даже после сброса параметров значение is_filter все равно равняется 1! Получается, отследить, использован ли на странице фильтр, если в нем есть хотя бы один диапазон, нельзя, система думает, что фильтр установлен.

Array (
[3] => Array ( [from] => 2100 [to] => 9000 )
[9] => Array ( [from] => 20000 [to] => 85000 )
[is_filter] => 1
)
Last edit: 6 years 1 week ago by Женя Чугаев.

Please Log in to join the conversation.

More
6 years 1 week ago #8142 by JoomLine
Попробуйте тут github.com/Joomline/JlContentFieldsFilte...ieldsfilter.php#L125

вставить то что вам требуется: что то типа $app->enqueueMessage()

Please Log in to join the conversation.

Powered by Kunena Forum

Last from the forum

    • Место вывода кнопок
    • Не работает кнопка { jllike } - для вывода плагина (без пробелов) Невозможно вывести кнопки при разрыве страницы. Например, при 10 разрывах страны, или, по сути, 10 страницах, кнопки соц сетей, только на последней странице! Как вывести кнопки на всех страницах при разрыве страницы? Или каким тегом на 1 странице в 2025 году, если тег { jllike } давно не работает?
    • In Plugins Joomline / JL Like / JL Like PRO
    • Карта сайта для компонента JoomMedia
    • Здравствуйте. Уже 2 года не могу создать карту сайта для компонента JoomMedia, который покупал: 1. В компоненте JSitemap нет такого источника данных, а сам не могу создать SQL запрос карты сайта для JoomMedia 2. В компоненте JL Sitemap нет плагина JoomMedia. Сможете помочь по любому из 2-х пунктов, могу оплатит расходы, компонент JoomMedia находится по ссылке drive.google.com/file/d/1xg4oQzcmYhJ1NGP...sw2/view?usp=sharing Компонент в работе: 4in.ru/sport.html  
    • In Component / JL Sitemap
© 2010- JoomLine
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries. joomline.net is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.

email: This email address is being protected from spambots. You need JavaScript enabled to view it.