Seite 1 von 1

Beiträge nicht als gelesen markieren

Verfasst: 20.12.2004 07:50
von Cojote
Hallo,

ich bin gerade dabei einen Mitgliederbereich fürs phpbb zu programmieren. Da ich ganz spezielle Vorstellungen habe kann und möchte ich keine der fertigen Lösungen aufspielen.

Da der Mitgliederbereich voll ins Forum eingeflochten werden soll, benutze ich (bis auf einige wenige Änderungen) unter anderem das ganze Sessionmanagment des phpbb.
Klappt alles wunderbar bis auf eine Sache:
Loggt man sich im Mitgliederbereich ein werden einem alle neuen Beiträge im Forum als gelesen markiert.
Ich habe jetzt nachgesehen und glaube dass die neuen Beiträge anhand der last_visit Spalte in der users-Tabelle bestimmt werden. Habe den Update also rausgenommen aber es klappt immer noch nicht.

Wird da evtl noch ne Angabe in nem Cookie gespeichert? Hat vielleicht jemand ne Idee wie ich das Problem beheben könnte?
Wäre nett.

Vielen Dank und Gruß

Re: Beiträge nicht als gelesen markieren

Verfasst: 21.12.2004 17:23
von MrMind
Cojote hat geschrieben:Ich habe jetzt nachgesehen und glaube dass die neuen Beiträge anhand der last_visit Spalte in der users-Tabelle bestimmt werden.
Das hast du richtig erkannt. ;)
Cojotte hat geschrieben:Wird da evtl noch ne Angabe in nem Cookie gespeichert?
Definitiv Nein, wenn du nicht den Beitrag gelesen hast bzw. das Forum als gelesen makierst.


Mal ne andere Frage wie wir dieses Problem evtl. anderster anpacken können:

Wieso müssen sich die User in deinem Mitgliederbereich neu einloggen?? Wenn diese durch das Automatisierungsverfahren eingeloggt sind und dann in diesen Bereich wollen, brauchst du doch nur noch ne Überprüfung zu machen ob sie berechtigt sind und mehr net ;)

Mfg
MrMind

Verfasst: 21.12.2004 22:23
von Cojote
Vielen Dank für deine Antwort.

Erstmal war es sehr hilfreich zu erfahren dass keine Angabe im Cookie gespeichert wird, das erleichtert ne Lösung wahrscheinlich etwas.

Die User müssen sich nicht neu einloggen bzw können auch direkt innerhalb des phpbb zwischen dem Bereich und dem Forum switchen.

Zur Veranschaulichung meines Problems folgendes Szenario:
Ein User möchte in den Mitgliederbereich um kurz mal was nachzusehen...möchte aber gar nicht im Forum lesen.
Er geht also direkt in den Mitgliederbereich loggt sich dort ein...oder wird als eingeloggt akzeptiert wenn er denn den passenden Cookie sendet (das ganze läuft wie gesagt über das Session Managment des phpbb).
Er loggt sich dort also ein schaut kurz was nach, schließt das Fenster wieder. 10 Minuten später fällt selbigem User ein er könnte ja mal die neuen Beiträge im Forum lesen. Er geht also direkt aufs Forum...allerdings mit der Überraschung dass nun durch den Besuch des Mitgliederbereichs alle neuen Beiträge die seitdem für ihn als neu markiert waren jetzt als gelesen gelten.

Switcht der User intern zwischen beidem gibt es da keine Probleme. Lediglich bei obigem Szenario.
Ich benutze im Mitgliederbereich exakt das Sessionmangment des phpbb, hierbei wird auch nicht zwischen Sessions im Mitgliederbereich und Sessions im Forenbereich unterschieden.

Verfasst: 22.12.2004 23:45
von MrMind
Cojote hat geschrieben:Zur Veranschaulichung meines Problems folgendes Szenario:
Ein User möchte in den Mitgliederbereich um kurz mal was nachzusehen...möchte aber gar nicht im Forum lesen.
Er geht also direkt in den Mitgliederbereich loggt sich dort ein...oder wird als eingeloggt akzeptiert wenn er denn den passenden Cookie sendet (das ganze läuft wie gesagt über das Session Managment des phpbb).
Er loggt sich dort also ein schaut kurz was nach, schließt das Fenster wieder. 10 Minuten später fällt selbigem User ein er könnte ja mal die neuen Beiträge im Forum lesen. Er geht also direkt aufs Forum...allerdings mit der Überraschung dass nun durch den Besuch des Mitgliederbereichs alle neuen Beiträge die seitdem für ihn als neu markiert waren jetzt als gelesen gelten.
Sag das doch gleich ;)

Dann nehm mal den Codebereich raus, wo dieSpalte aktuallisiert wird, die den jetzigen Timestamp speichert. Daran liegt es. Denn wenn sich der User nur in den Mitgliederbereich einloggt, dann prüft das Sessionhandling nicht ob dieser auf dem Forum oder im Mitgliederbereich ist, außer du änderster es so ;)
Dadurch wird die Spalte die den momentanen Timestamp gespeichert wird, aktuallisiert und das Script denkt, er ist im Forum und sieht sich die neuen Beiträge an, dies tut er ja aber nicht.

Mfg
MrMind

Verfasst: 02.01.2005 09:14
von Cojote
Vielen Dank nochmals: So klappts!
Musste den kompletten Update der users_table rausnehmen, hatte aber lediglich den Teil in dem die last_visit Spalte aktualisiert wird rauskommentiert.

Verfasst: 02.01.2005 11:03
von Nico Haase
es gibt auch einen mod, der dafür sorgt, dass forenbeiträge ausschließlich dann als gelesen markiert werden, wenn sie aufgerufen oder manuell markiert werden, siehe http://www.phpbbhacks.com/download/2099 oder (den meinte ich eigentlich) http://www.phpbb.de/viewtopic.php?t=71045

Verfasst: 02.01.2005 15:32
von Cojote
Der Mod sieht gut aus. Ich denke ich werde ihn trotzdem noch einbauen, da er auch einige nette Features bietet.

Fettes Dankeschön für den Link!