Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przełączanie zasobów
Forum PHP.pl > Forum > PHP
markonix
Jakbyście rozwiązali takie case.

Dane w systemie podzielone są na regularne interwały, powiedzmy rok szkolny albo sezon.
Użytkownik po wejściu do systemu ma wczytany domyślny rok z możliwością przełączania się do "archiwów" w dowolnym momencie.
Zmiana ta zapisywana jest w sesji i bieżący rok wczytywany jest "wysoko" w kodzie tak aby mieć dostęp do current / selected year.

No i fajnie działa, od strony użytkownika fajnie to wygląda bo może przeładować system i wczytać dane.
Jest tylko jeden problem - powiedzmy jak to w systemach mamy powiadomienia - taki dymek na górze i jako, że jeden użytkownik może mieć i kilka takich sezonów (nawet i jednocześnie).
Powiadomienia raczej dobrze by było aby dotyczyły wszystkich jego zasobów, a nie tylko current bo tam samo na FB chcesz mieć powiadomienia z Twojego profilu jak i profilów, które obsługujesz.
Po kliknięciu w powiadomienie z NIE current spowoduje błąd lub wczyta mu się błędny zasób po powiedzmy ma powiadomienie o komunikacie, ale gdy wejdzie w /messages to nie zobaczy te o którym mówi powiadomienie.
Propozycje jak to rozwiązać? Koncepcyjnie albo bardziej technicznie, powiedzmy w Laravel.
lukaskolista
Koncepcyjnie jest to bardzo dziwnie rozwiązane.

Cytat
Zmiana ta zapisywana jest w sesji i bieżący rok wczytywany jest "wysoko" w kodzie tak aby mieć dostęp do current / selected year.
Jest wczytywany, czyli co się dzieje? Bo bardzo ogólnie opisałeś problem.
markonix
Zapisywany jest w sesji tak aby w dowolnym kontrolerze móc powiedzmy zrobić coś w stylu:

  1. Model::whereSeason($currentSeason->id)->get();


Jako, że większość danych właśnie jest przypisana do konkretnego roku.
To taka analogia jak pobieranie wg zalogowanego użytkownika.
Pyton_000
No to zrób przeciążanie np. na podstawie url. Jeśli wystąpi w url specyficzny rok to będzie on nad tym co jest w sesjii
markonix
W URL znajduje się ID zasobu, nie roku.
Musiałbym najpierw pobrać ID roku, sprawdzić czy jest zbieżny z currentYear i dopiero podjąć kroki i mówisz o nadpisaniu sesji czy nadpisaniu w tym konkretnym wywołaniu currentYear.

Najbardziej userfriendly wydaje mi się rozwiązanie takie:
1) User ma włączony 2017
2) Klika powiadomienie z 2016
3) Wyświetla się komunikat "Wybrany zasób pochodzi z roku 2016. Czy chcesz teraz przełączyć system?".
4) Przełącza sesje i wyświetla dane.

Fajnie by to rozwiązać globalnie i troszkę jest problematyczne gdyby ktoś miał drugą kartę otwartą np. na edycji roku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.