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

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

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

Please Log in or Create an account to join the conversation.

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

Please Log in or Create an account to join the conversation.

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

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

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

Please Log in or Create an account to join the conversation.

More
2 years 8 months ago - 2 years 8 months 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: 2 years 8 months ago by Женя Чугаев.

Please Log in or Create an account to join the conversation.

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

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

Please Log in or Create an account to join the conversation.

Powered by Kunena Forum

Last from the forum

    • доставка и самовывоз
    • Здравствуйте! Плагин отличный, всё устраивает, как раз нужен минимум, и не нужно поднимать полноценный магазин и урезать его функционал. Но, вот бы еще добавить поля с доставкой - радиобаттоны и выбор Самовывоз или Доставка (фиксированная цена), чтобы в корзину к итоговой стоимости добавлялось. И был бы шик :)
    • In Plugins Joomline / Content Cart
    • สล็อตออนไลน์
    • เว็บไซต์พนัน เว็บไซต์พนันเกมออนไลน์ ผ่านมือถือ ไลฟ์สดจากต่างแดน แม้เอ๋ยถึงเว็บพนัน เกมสล็อต ที่ถูกเอ๋ยถึงกันมหาศาล ในขณะนี้ ซึ่งจำต้องบอกก่อนเลยว่า เกมบาคาร่าสด หรือบาคาร่าออนไลน์นั้นเป็นเกมยอดนิยมมาอย่างเป็นเวลายาวนาน
    • In Component / Slogin
    • JL Content Fields Filter not working with Admin To...
    • Hi, I'm using JL Content Fields Filter on a site with Admin Tools and there seems to be a conflict between them.  The plugin was added to Admin Tools to allow direct access to the directory, but the filter still did not work on the frontend. Can anything be done to fix this? Thank you JL Content Fields Filter 2.0.2 Admin Tools Professional 6.1.7 Joomla 3.10.10
    • In Modules Joomline / JL Content Fields Filter
© 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.