Beiträge nicht als gelesen markieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beiträge nicht als gelesen markieren

Beitrag 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ß
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Re: Beiträge nicht als gelesen markieren

Beitrag 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
Selbst ist der Coder
Coder unter Linux
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag 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.
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag 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
Selbst ist der Coder
Coder unter Linux
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag 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.
Benutzeravatar
Nico Haase
Mitglied
Beiträge: 1100
Registriert: 10.08.2003 15:19
Wohnort: Neu-Anspach / Darmstadt
Kontaktdaten:

Beitrag 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
Buchtips.net bietet mehr als 2500 Buchrezensionen
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag 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!
Antworten

Zurück zu „Coding & Technik“