Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odwiedzony link w php
Forum PHP.pl > Forum > Przedszkole
jastu
Jak to napisać nie pisząc biektowo - na forum php.pl po przeczytaniu temat zmienia się symbol koperty umieszczonej na lewo od tematu wątku ... zmienia się też jeśli pisałeś coś w tym temacie (to wiem jak napisać), jak poinformować użytkownika że dany wątek już przeczytał questionmark.gifquestionmark.gif
Kas
Do tego służy pseudoklasa :visited w CSS. Inaczej można to zrobić poprzez sesję. Każda strona ma swój id. Po wejściu na stronę jest on dodawany jej id do tablicy przechowywanej jako sesja.
venomz
bez bazy danych sie tu nie obejdzie. nie wiem jak to jest rozwiazane tutaj ale mozesz np stworzyc tabele ktora bedzie zawierala informacje jaki user odwiedzil jaki temat i na tej podstawie generowac link o odpowiednim wygladzie
Kas
Lepiej, poprzez sesję, zapisywać jakie strony były już odwiedzone. Można je rozpoznawać po adresie.
Możesz też zrobić tak jak tutaj - zapisywać te informacje w bazie danych.
venomz
Mozesz troche przyblizyc ten sposob z sesjami? Jak to ma dzialac? Po odwiedzeniu strony tworzysz odpowiednia zmienna sesyjna?
Amorph
@Kas a co w momencie kiedy zamknę przeglądarkę... ?
Kończy się sesja i co potem?
Wchodzę ponownie na strone i mam wszystko nieodwiedzone....
@venomz tabela z informacja ktory temat odwiedzony.... wyobraź sobie wielkość tabeli przy kilkunastu tysiącach userów(php.nq.pl) i tysiącach tematów....
Tu potrzeba lepszego patentu....
Kas
Trzeba to rozwiązać tak samo jak tutaj. Tyle, że nie wiem jak to jest zrobione. smile.gif Na pewno w oparciu o bazę danych.
venomz
Cytat
wyobraź sobie wielkość tabeli przy kilkunastu tysiącach userów(php.nq.pl) i tysiącach tematów....
Tu potrzeba lepszego patentu....


nie wiem czy jest lepszy patent niz zapisanie tych informacji w bazie danych. jezeli chodzi o objetosc takiej tabeli to nie powinna ona byc az tak duza bo w zasadzie wystarczy w niej zapisywac id uzytkownika i id przeczytanego przez neigo tematu. zeby przyspieszyc proces wyszukiwania moznaby stworzyc kilka takich tabel (np. po jednej do kazdego dzialu).
jastu
Zakładając temat domyślałem się że może to nie być łatwe... szkoda tylko że np roziazanie z bazą danych jest tanie nieeleganckieale trudno, może jeszcze gdzieś się dowiem.
mls
A co w tym nieeleganckiego? Rusz głową, jak inaczej strona "miałaby wiedzieć", czy odwiedziłeś już jakąś podstronę czy nie? Zastosowanie bazy danych to najprostsze i właśnie najbardziej eleganckie rozwiązanie. A przy tym pewne.
jastu
To będzie tabelka przez którą będzie przelatywał system za każdym razem jak ktoś kliknie link,doda temat albo odpowiedź...po dłuższym namyśle myśle że jest to do zrobienia...byłem tylko trochę onieśmielony ciągłą pracą tej tabeli.
venomz
Praktycznie kazda wieksza aplikacja stworzona w oparciu php i mysql buduje poszczegolne strony korzystajac z danych wyciagnietych z bazy. Takze nie ma nic dziwnego w tym ze po kazdym kliknieciu nastepuje zapytanie do bazy i pobranie z niej informacji. MySQL ma do siebie to, ze jest bardzo szybki i wygenerowanie odpowiedzi zwykle czas rzedu milisekund.
jastu
Czy może ktoś zaproponować przykładową strukturę takiej tabeli (piszę forum...wprawdzie nie jest ono pokaźne ale chętnie bym dodał taką funkcjonalność).Pozdr
erix
Mnie by się to w tej chwili widziało w ten sposób:
Przeznacz jakiś klucz w sesji (np. readThreads). Zrób z niego tablicę i po każdym przeczytaniu wątku przez usera dopisuj do niej ID tematu oraz zapisuj ten klucz w bazie, w rekordzie usera. Potem przy wyświetlaniu listy tematów sprawdzaj $readThreads[$idTematu. Jeśli jest - daj kopertę.
jastu
No to jeszcze bierzemy pod uwagę dodanie nowej odpowiedzi w wątku - temat jest już traktowany jak nieprzeczytany....albo jeszcze inaczej , zmieniamy status tego tematu (chyba ostatusowanie ID tematów dla ID użytkownika będzie najlepszym rozwiązaniem ...zwłaszcza że takich statusów można wydzielić kilka - do tego może być kilka jednocześnie np. temat przeczytany w którym pisałes lub tylko przeczytany).

Będzie trochę zabawy.... dry.gif
erix
Ale po co wyważać otwarte drzwi? Podejrzyj jak jest np. w phpBB.
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.