PDA

Zobacz pełną wersję : Filtrowanie danych przez setState i resetowanie wyników



KID
28-03-2017, 18:16
Część frontowa aplikacji. Joomla 3.6.5.
Mam komponent ustawiony w pozycji menu itemid-X, który ma dodany filter na stronie głównej oraz paginację. Czyli pełna lista wyników.
Po wybraniu przycisku filtruj, w zmiennej post mam coś takiego:

Array
(
[filter] => Array
(
[zmienna1] =>
[zmienna2] => 2
[zmienna3] =>
)


[task] =>
[boxchecked] => 0
[filter_order] =>
[filter_order_Dir] =>
[6ba48f993dafa669281d6e184e1ad1d5] => 1

[list] => Array
(
[fullordering] => null ASC
)


)

W modelu w populateState pobieram dane przez getUserStateFromRequest oraz ustawiam setState, który jest później pobierany w getListQuery przez getState. Czyli można by rzec książkowo.
Filtrowanie działa bez problemu.

Natomiast mam ten sam komponent (lista ostatnich 10 wyników bez paginacji i bez filtra) ustawiony w innej pozycji menu (itemid-Y). I teraz jeśli wyszukam wyniki na stronie itemid-X i nie wyczyszczę filtrowwania, to po przejściu na stronę itemid-Y mam dalej aktywny filtr. Więc zamiast getUserStateFromRequest spróbowałem kolejno getUserState a następnie getState. Niestety wynik zawsze mam ten sam. Sprawdziłem zmienną post i request, ale tam tablica filtrowania jest ustawiana tylko za pierwszym razem, a później jest już pusta.

Mam dop Was pytanie. Gdzie popełniam błąd lub też co mogę jeszcze zweryfikować? I jak zweryfikować czy filter jest ustawiony? Z góy dzięki za odpowiedź!.

Jola
29-03-2017, 01:28
Dodaj do zmiennej Itemid - filtrowanie uzależnij od pobranego Itemid - ze strony głównej filtruj, z innego menu - nie.

KID
29-03-2017, 09:51
Dziekuję za odpowiedź.
Jeśli dobrze rozumiem, to aby dodać do zmiennej itemid muszę napisać własne pole, które zostanie pobrane do formularza XML a następnie wstawione do formularza filtrowania. Czy tak?

Jola
29-03-2017, 13:04
To tylko pomysł wykorzystania pozycji menu.
A co z tym zrobisz to Twój pomysł.
Możesz uzależnić odpytywanie o filtry od Itemid bez przekazywania w zmiennej.

KID
29-03-2017, 13:28
Dziękuję. Pozdrawiam!