Frage zur Vorgehensweise...
Frage zur Vorgehensweise...
Also, ich brauche keinen Code.
Ich möchte nur das Prinzip verstehen.
Wie funktioniert es, wenn man sich eingeloggt hat das das Script weis welche Beiträge von mir gelesen wurden und welche nicht?
Sicherlich geht es mit Timestamp.
Aber wie?
thx
Ich möchte nur das Prinzip verstehen.
Wie funktioniert es, wenn man sich eingeloggt hat das das Script weis welche Beiträge von mir gelesen wurden und welche nicht?
Sicherlich geht es mit Timestamp.
Aber wie?
thx
Das geht per Cookie. Es wird im Cookie gespeichert, welches Posting noch ungelesen ist und welches gelesen wird. Nach hinten hin wird das ganze per Timestamp abgesichert, welches dann sagt, daß alles Postings "vor Mitternacht z.B." gelesen sind.
Im neuen phpBB2.2 wird man das ganze auch im Forum speichern können um damit zu verhindern, daß man z.B. nach dem 24h-Reconnect alles als Gelesen angezeigt bekommt, weil sich die IP und damit die Session-ID ändert.
Aber technisch könnte man das auch alles so im Cookie regeln.
Grüße
Dennis
Im neuen phpBB2.2 wird man das ganze auch im Forum speichern können um damit zu verhindern, daß man z.B. nach dem 24h-Reconnect alles als Gelesen angezeigt bekommt, weil sich die IP und damit die Session-ID ändert.
Aber technisch könnte man das auch alles so im Cookie regeln.
Grüße
Dennis
Codest Du selber ein Forum? Oder warum fragst Du genau das? (Nur interessehalber).
Meine Lösungs-Idee:
Im Cookie wird ein "Time-Stamp" gespeichert. Alle Beiträge VOR diesem Timestamp werden als gelesen markiert. Wird es viele verschiedene große Zonen geben, macht es evtl. Sinn, für jede Zone einen eigenen TimeStamp zu generieren.
Wenn man jetzt einen Beitrag anklickt, dann wird im Cookie dieser Beitrag als "Gelesen" gesetzt.
Ruft man jetzt wieder den Index auf, werden erst alle Beiträge NACH dem Timestamp als "Ungelsen" markiert und dann die im Cookie gespeicherten als "gelesen".
Problem1) Wenn man in einer Zone auf "Alle Beiträge als gelesen markieren" klickt und es sind z.B. 100 Stücke, wie verhält es sich, wenn man auf einmal 100 Infos ins Cookie schreiben will? Dann wäre es evtl besser, für jede Zone einen eigenen Timestamp oder besser ein eigenes cookie anzulegen.
Problem2) Wann wird der Time-Stamp aktualisiert? Klar, wenn man auf "Alle Beiträge als gelesen markieren" klickt. Aber auch, wenn man länger als 2 Stunden nicht da war? Oder man überläßt das dem User. Er kann sagen, nach wie vielen Stunden abwesenheit automatsich alle vorigen Postings als gelesen markiert werden sollen. Dann nimmt man den letzten Klick des Users als neuen TimeStamp.
Problem3) Das generelle Problem mit dem Cookie ist, daß es nicht auf mehreren PCs funktionieren kann. Das geht nur, wenn man die Infos in einer extra Tabelle speichert.
Grüße
Dennis
Meine Lösungs-Idee:
Im Cookie wird ein "Time-Stamp" gespeichert. Alle Beiträge VOR diesem Timestamp werden als gelesen markiert. Wird es viele verschiedene große Zonen geben, macht es evtl. Sinn, für jede Zone einen eigenen TimeStamp zu generieren.
Wenn man jetzt einen Beitrag anklickt, dann wird im Cookie dieser Beitrag als "Gelesen" gesetzt.
Ruft man jetzt wieder den Index auf, werden erst alle Beiträge NACH dem Timestamp als "Ungelsen" markiert und dann die im Cookie gespeicherten als "gelesen".
Problem1) Wenn man in einer Zone auf "Alle Beiträge als gelesen markieren" klickt und es sind z.B. 100 Stücke, wie verhält es sich, wenn man auf einmal 100 Infos ins Cookie schreiben will? Dann wäre es evtl besser, für jede Zone einen eigenen Timestamp oder besser ein eigenes cookie anzulegen.
Problem2) Wann wird der Time-Stamp aktualisiert? Klar, wenn man auf "Alle Beiträge als gelesen markieren" klickt. Aber auch, wenn man länger als 2 Stunden nicht da war? Oder man überläßt das dem User. Er kann sagen, nach wie vielen Stunden abwesenheit automatsich alle vorigen Postings als gelesen markiert werden sollen. Dann nimmt man den letzten Klick des Users als neuen TimeStamp.
Problem3) Das generelle Problem mit dem Cookie ist, daß es nicht auf mehreren PCs funktionieren kann. Das geht nur, wenn man die Infos in einer extra Tabelle speichert.
Grüße
Dennis
Re: Frage zur Vorgehensweise...
Eventuell hilft das hier weiter?Progmore hat geschrieben:Wie funktioniert es, wenn man sich eingeloggt hat das das Script weis welche Beiträge von mir gelesen wurden und welche nicht?

tux. Ehemaliger Moderator ohne Sondertitel.
tuxproject.de
tuxproject.de
Ja, ich erstelle gerade selber ein Forum.
Es wird aber nur eine Zeitzone geben.
Deine Tipps haben mir schon einen klareren Überblick verschaft.
Nur es gibt da noch ein Problem 4.
Was ist wenn der Timestamp am Heutigen Tage um 12:00 Uhr gesetzt wurde.
Nun komme ich später wieder, um 14:00 Uhr.
Alle Beiträge zwischen 12:00 und 14:00 Uhr sind ungelesen.
O.K.
Nun schaue ich mir einen Beitrag von 13:00 Uhr an.
Es wird ein neuer Timestamp geschrieben.
Richtig?
Dann sind doch automatisch die Beiträge vor 13:00 Uhr als gelesen markiert. Das soll ja nicht sein.
Oder habe ich da was falsch verstanden?
Es wird aber nur eine Zeitzone geben.
Deine Tipps haben mir schon einen klareren Überblick verschaft.
Nur es gibt da noch ein Problem 4.
Was ist wenn der Timestamp am Heutigen Tage um 12:00 Uhr gesetzt wurde.
Nun komme ich später wieder, um 14:00 Uhr.
Alle Beiträge zwischen 12:00 und 14:00 Uhr sind ungelesen.
O.K.
Nun schaue ich mir einen Beitrag von 13:00 Uhr an.
Es wird ein neuer Timestamp geschrieben.
Richtig?
Dann sind doch automatisch die Beiträge vor 13:00 Uhr als gelesen markiert. Das soll ja nicht sein.
Oder habe ich da was falsch verstanden?
- Blutgerinsel
- Mitglied
- Beiträge: 1801
- Registriert: 19.07.2004 18:53
- Wohnort: Landkreis Ulm
- Kontaktdaten:
schonProgmore hat geschrieben: Nun schaue ich mir einen Beitrag von 13:00 Uhr an.
Es wird ein neuer Timestamp geschrieben.
Richtig?
Nicht wirklich....Dann sind doch automatisch die Beiträge vor 13:00 Uhr als gelesen markiert. Das soll ja nicht sein.
Oder habe ich da was falsch verstanden?
Denn reicht es aus wenn du nur die Zeit berrücksichtigst? Nein....
Warum nicht?
Weil ich automatisch ein weiteres eindeutiges Merkmal benötige um sicherzustellen was ich mir in diesem Zeitraum angeschaut habe......
z.B. wüsste ich wenn ich die
Post_ID + Timestamp mit den Cookie Einträgen vergleiche ob ich das dieses Posting nun gelesen habe oder nicht.
Würde ich nur die Zeit speichern könnte ich von der Logik nur den Zeitraum eingerenzen nicht aber die tatsächlich angeschauten Postings.......
Gut nun könnte es aber auch sein das ich wirklich alle Postings gelesen habe die vor 10.00 Uhr gelesen wurden. Und wenn man von der aktuellen Zeit von 12.00 Uhr ausgeht.
Könnte ich die Post_ID mit dem Timestamp vor 10.00 Uhr löschen und alles was nach 10.00 Uhr kommt wieder kontrollieren. So bleibt das Cookie klein
(ohne detailierte Kenntnisse über das PHPBB Cookie)
Wenn Du um 13 Uhr einen Beitrag (xy) anschaust, dann darf der Timestamp im Cookie NICHT vorgestellt werden.
Es muss im Cookie nur gespeichert werden, daß Du den Beitrag xy gelsen hast.
Der Timestamp darf erst dann vorgestellt werden, wenn Du auf "Alle Themen als gelesen markieren" klickst.
Und wie "Blutgerinsel" schon sagte, mußt Du auch auf die Cookiegröße achten. Wenn jemand nie auf "Alle Beiträge als gelesen makrieren" klickt, dann muß die Funktion irgendwie anders übernommen werden. Z.b. Wenn jemand länger als 6 Stunden nicht da war oder so.
Grüße
Dennis
Es muss im Cookie nur gespeichert werden, daß Du den Beitrag xy gelsen hast.
Der Timestamp darf erst dann vorgestellt werden, wenn Du auf "Alle Themen als gelesen markieren" klickst.
Und wie "Blutgerinsel" schon sagte, mußt Du auch auf die Cookiegröße achten. Wenn jemand nie auf "Alle Beiträge als gelesen makrieren" klickt, dann muß die Funktion irgendwie anders übernommen werden. Z.b. Wenn jemand länger als 6 Stunden nicht da war oder so.
Grüße
Dennis