![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Od dawna męczy mnie to zagadnienie i jakoś nie potrafię z nim sobie poradzić... Jak rozwiązać problem nowych (nieprzeczytanych) postów i tematów? dla użytkowników? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
A razy liczba 10k userów (wątpię czy tyle Twoje forum osiągnie) dzięki za wiarę (IMG:style_emoticons/default/tongue.gif) Pierwsze zalogowanie usera to stworzenie mu X rekordów z najnowszymi postami. Potem musisz tę tabelę kontrolować. Wejście na dany temat to usunięcie postów z tego tematu jako "przeczytanych". Problemem jest wyłapywanie postów pojawiających się pomiędzy akcjami usera. Musisz bowiem kontrolować czasy tych akcji i na bieżąco korygować wszystko. Dlatego w sesji i/lub danych usera musisz te informacje przechowywać by móc na nich opierać swoje działania. Przykładowo user sobie coś robi na stronie, ale Ty musisz wiedzieć kiedy ostatnio robił coś na forum, bo tylko taka dana Cię interesuje. Jeśli wszedł na forum... Zapisz ten czas. Gdy przejdzie na inna stronę forum -> dopisz posty powstałe od czasu ostatniej aktywności na forum do tej jego "tabeli" i zapisz czas kiedy to zrobiłeś w jego danych. On forum czyta to odejmujesz przeczytane posty ale jednocześnie sprawdzasz czy nie ma nic nowego. Sprawa więc wygląda tak, że przy każdym przejściu WEWNĄTRZ struktury forum pobierasz wszystkie posty od momentu ostatniej aktywności na forum, a czasem aktualnym i dokładasz je do tabelki, aktualizujesz zaraz po tym sprawdzeniu czas ostatniej bytności na czas aktualny. Wyjście z forum nie zmienia nic, ponieważ masz tabelę nieprzeczytanych postów i czas ostatniej aktywności forumowej. Wejście na dowolna stronę forum powoduje sprawdzenie czasu i dopisanie ewentualnych nowych postów do tabeli oraz aktualizację tego czasu. Jesteś wtedy na bieżąco z postami. Jeszcze tylko musisz kontrolować liczbę tych postów by w razie przekroczenia X usuwać najstarsze. troszkę to skomplikowane i nie jestem pewien, czy wszystko dokładnie rozumie... Najprościej to robisz sobei w bazie SQL tabele viewed z polami: id, user_id, post_id I sprawdzasz czy dla usera z id X, istnieje rekord dla postu z id Y Jak tak to znaczy że juz ogladal tego posta Ten sposób wydaje mi się najprostszy jednak nie wiem czy wybrać ten czy proponowany przez Thek'a... Thek jeśli mógłbyś troszkę bardziej łopatologicznie? (IMG:style_emoticons/default/biggrin.gif) Pozdrawiam i dziękuję za zainteresowanie (IMG:style_emoticons/default/smile.gif) Ten post edytował ZuyPan 11.02.2010, 19:20:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 18:34 |