php forum => Threads als gelesen markieren

Rpgrafx

Mitglied
Hey Leute,

ich stehe nun kurz vor dem Abschluss von meinem selbst geschriebenen PHP Forum.
Allerdings fehlen noch kleinere Features wie zb. das Anzeigen welche threads von einem
User bereits gelesen wurden.

Hat mir da jemand en Tip wie man das realisieren kann?

Wäre echt super!

Danke

rpgrafx
 
Zuletzt bearbeitet:
Ich habe mal in einem Forum eine Diskussion darüber mitgelesen und ich glaube die Quintessenz war, dass es keine einfache Möglichkeit gibt, ohne dass sich das Datenvolumen exorbitant mit steigender Anzahl von Nutzern und Threads erhöht. Ich lass mich gerne eines Besseren belehren. Aber machs doch wie hier .. einfach die timestamps eines Threads und der letzten Session vergleichen. Zumindest sieht man dann, was neu dazu gekommen ist.
 
Rpgrafx hat gesagt.:
Hat mir da jemand en Tip ... ?
Ja, die Suchfunktion dieses Forums. Ich erinnere mich dunkel an mindestens zwei Threads, in denen ich mich zu dem Thema geäußert habe und es gibt mit Sicherheit noch mehr, die sich mit gelesenen und ungelesenen Beiträgen befassen.

Ich stimme Teppi zu, dass es bei exakten Verfahren i.d.R. zu einem hohen Datenaufwand kommt und das Forum dadurch auch langsam werden kann. Verfahren, die den Datenaufwand reduzieren sind meist kompliziert zu implementieren.

Gruß hpvw
 
Also wenn ich das richtig verstanden habe,

zeige ich alle Beiträge, die nach dem letzten login gepostet wurden, als neue Beiträge an und
alles was davor geschrieben wurde als alte Beiträge?!

Der Login basiert sowohl auf Sessions als auch auf Cookies (das kann der User
auswählen). Also muss ich bei Cookies schauen, wann er gesetzt wurde und mit
dem Datum der Beiträge vergleichen und bei Sessions ebenfalls?!

Auf jeden Fall schon Mal Danke!

Grüße

rpgrafx

PS: hab leider mit der Suche keine Ergebnisse erzielen können
 
Ich habe es jetzt mal so probier:

Ich speichere in der UserDB immer den Zeitpunkt des Logouts um später
einen Vergleich zu machen, der so aussieht:

Suche alle Beiträge, die zwischen dem Loginzeitpunkt und dem Logoutzeitpunkt verfasst wurden

Ist da jetzt ein Denkfehler drin? Es sieht zwar so aus als würde es funktionieren aber
irgendwie bin ich mir nicht ganz sicher!
 
Hi.

Ich gehe davon aus, dass dein Forum eine Datenbankanbindung besitzt.

Also solltest du eine Aggregationstabelle von User nach Thread einbauen, in der du alle "schon gesehen" Verknüpfungen ablegst.

Table T_USER_THREAD
id_user
id_thread
timestamp

Darüber lässt sich dann prima filtern, wer wann was gesehen hat.

Viel Spaß,
Christian
 
Hallo,
ein denkfehler könnte u.a. sein, dass sich der user nicht umbedingt ausloggt. Ich z.B. logge mich in manchen Foren nie aus, da ich das PW eingeben hasse (vertippe mich bei meinen "schwierigen" Passwörtern so oft). Ich würde dir deshalb empfehlen alle user, die eine idletime von 30 Minuten habe automatisch auszuloggen oder bei jedem aufruf einer seite die zeit wegspeichern (ein feld in der usertabelle) und auf diese Zeit abfragen.

mxp hat gesagt.:
Hi.

Ich gehe davon aus, dass dein Forum eine Datenbankanbindung besitzt.

Also solltest du eine Aggregationstabelle von User nach Thread einbauen, in der du alle "schon gesehen" Verknüpfungen ablegst.

Table T_USER_THREAD
id_user
id_thread
timestamp

Darüber lässt sich dann prima filtern, wer wann was gesehen hat.

Viel Spaß,
Christian

Das würde wiederum zu enormen Speicherplatzverbrauch führen ;)

MFG
 
aKraus hat gesagt.:
Das würde wiederum zu enormen Speicherplatzverbrauch führen ;)

Wer das eine will, muss das andere mögen. ;-)

Da wir uns aber darüber einig zu sein scheinen, dass dieses Feature ohne platztechnischen Mehraufwand nicht möglich wäre, können wir aber dennoch festhalten, dass dies wohl die sauberste Lösung wäre, oder?

Zur Optimierung der Geschichte könnte man allerdings nur einen Eintrag anzulegen, wenn tatsächlich ein User einen Thread sieht. Und das auch nur, wenn es sich dabei um sein "erstes mal" handelt.

Von irgendwelchem Gefriemsel über die Session würde ich dabei dringend abraten.
 
hpvw hat gesagt.:
Ich stimme Teppi zu, dass es bei exakten Verfahren i.d.R. zu einem hohen Datenaufwand kommt und das Forum dadurch auch langsam werden kann. Verfahren, die den Datenaufwand reduzieren sind meist kompliziert zu implementieren.

Gruß hpvw

Ich stimme hpvw irgendwie zu. Das eine wäre zwar die sauberste, das andere dafür allerdings die performanteste Lösung. Es kommt immer drauf an, was du haben willst und worauf du deinen Schwerpunkt setzt.
 
Ok ich danke euch mal!

Das Forum hab ich vor 2 Wochen angefangen und man kommt ja sehr weit
allein schon mit den Grundkenntnissen. Strukturiert ist es glaub ich auch gut
aber gerade solche Feinheiten muss ich eben noch integrieren.

Was genau ist mit idletime gemeint? ist das ne Zeitspanne in der der User nicht aktiv war?
Wie kann ich die denn bekommen?

grüße
 
Zurück