Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Neueste Themen auf eigener Seite - Status ungelesen abfragen
#1
Hi alle zusammen,

ich bastel gerade für mein Clan Forum eine ordentliche Home Seite, wo unter anderem Infos zum Clan und die neuesten News (News-Section selbst geschrieben) und die neuesten Themen und Beiträge aus dem Forum angezeigt werden sollen.

Soweit klappt alles wunderbar: Die neuesten Themen und Beiträge werden wie gewollte angezeigt, und auch den Status der Themen bekomme ich fast hin. Leider nur fast...

Mein Problem ist: Wie erfahre ich, ob ein Thema bereits gelesen wurde oder nicht?
Ich habe schon ne Weile versucht, aus der forumdisplay.php schlau zu werden, aber irgendwie krieg ich den Status irgendwie nicht richtig hin...

Die anderen Status/Statusse/Stati/Staten (kA was das richtige Plural ist xD) funktionieren: Geschlossene und heiße Themen, und Themen mit eigenen Beiträge werden bereits als solche korrekt gekennzeichnet. Nur die neuen (ungelesenen) Themen machen mir Probleme.

Kann mir jemand dabei weiterhelfen? Würde mich sehr freuen Smile

(Das idealste wäre direkt der Codeschnipsel, der mit Hilfe der Thread-Daten aus der DB sagt, ob es ein ungelesener Thread ist oder nicht ^___^ Ein paar Informationen, wo und wie der Gelesen-Status vermerkt ist würde mir aber sicher auch schon weiterhelfen Wink)

MfG Zwoetzen
Was ist der Unterschied zwischen der Politik und der Informatik?
In der Informatik ignoriert man führende Nullen...
Zitieren
#2
Den Code findest du in der forumdisplay.php ab Zeile 590. Grundsätzlich sind die Informationen über gelesene Themen in der Datenbanktabelle threadsread gespeichert.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Danke für deine Antwort.

Habe mir nun nochmal diese Stelle (und andere Stellen, die dazu zu gehören scheinen) guchgeschaut und versucht, nachzuvollziehen.
Allerdings bin ich nicht wirklich sehr weit gekommen: Ich habe zwar nun den Zeitpunkt, an dem ein Thread zuletzt gelesen wurde (aus der Tabelle mybb_threadsread), aber ich weiß jetzt nicht wirklich, was ich damit anfangen soll Sad
Momentan weiß ich weder, was es mit dem $forumread ab Zeile 607 auf sich hat, noch wie da am Ende ab Zeile 768 dann die "Schlussfolgerung" aus dieser Info gezogen wird...

Kann das wirklich so schwer sein, einfach nur herauszufinden, ob der Thread gelesen wurde oder nicht? oO
(Wenn das so sein sollte, lass ich den Gelesen-Status lieber raus Toungue)
Was ist der Unterschied zwischen der Politik und der Informatik?
In der Informatik ignoriert man führende Nullen...
Zitieren
#4
Zwoetzen schrieb:Kann das wirklich so schwer sein, einfach nur herauszufinden, ob der Thread gelesen wurde oder nicht? oO
Was meinst du, warum die Fehler dadrin nicht so schnell wie andere Probleme korregiert wurden? Wink

Die Kombination aus der Tabelle und den Cookies ist nicht so einfach.

Tipp: Benutze doch: https://crossreference.mybb.de/
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Wenn es wirklich so schwierig ist, lasse ich besser meine Finger davon. Man kann nicht alles haben ^__^
Was ist der Unterschied zwischen der Politik und der Informatik?
In der Informatik ignoriert man führende Nullen...
Zitieren
#6
Ich wollte genaaaau das hier auch. Daß man mit search.php bei action=getnew zum Beispiel tatsächlich die ungelesenen bekommt. Oder meinetwegen mit einer neuen Action (für eine solche bin ich aber offenbar zu doof. ^^)


Aber ich scheitere grandios schon viel früher.

Wie stellt es MyBB an, daß ich auf jedem Recher mit dem gleichen Account die gleichen Threads als gelesen und ungelesen angezeigt bekomme, aber trotzdem fast alles in Cookies gespeichert zu werden scheint und nicht in den beiden Tabellen der Datenbank? Sad

Also ohne die Cookies wäre das hier ne tolle Idee gewesen:
PHP-Code:
$where_sql " t.tid IN (select t2.tid FROM ".TABLE_PREFIX."threads t2 INNER JOIN  ".TABLE_PREFIX."threadsread r ON (t2.tid = r.tid) WHERE r.uid='{$mybb->user['uid']}' AND t2.lastpost > r.dateline ) ";
    
    
    
$where_sql .= " AND t.fid IN (select t2.fid FROM ".TABLE_PREFIX."threads t2 INNER JOIN  ".TABLE_PREFIX."forumsread r ON (t2.fid = r.fid) WHERE r.uid='{$mybb->user['uid']}' AND t2.lastpost > r.dateline )  "

Nur leider ist bei einem Account von mir überhaupt kein Eintrag in beiden Tabellen. Da scheint es dann gänzlich in den Cookies zu stehen. (?)


Muß man wirklich alle vorhandenen threads einzeln durchgehen und gegen ein solches $last_read prüfen?
PHP-Code:
$last_read my_get_array_cookie("threadread"$thread['tid']); 



Es wäre so nice wenn man eine Abfrage auf alle Themen mit ungelesenen Beiträgen machen könnte. <3
Zitieren
#7
Ich denke das der Rechner im Grunde keine wesentliche Rolle spielt, solange Du mit den gleichen Accountdaten über die gleiche IP ins Forum dich anmeldest. Sollte ich falsch liegen mit meiner Vermutung, dann verzeihe es mir bitte ^^.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#8
Ich meinte durchaus auch eine andere IP. Smile Aber mir fällt natürlich gerade ein, daß es natürlich keine lokalen Cookies sein werden und einfach die User-ID gespeichert werden wird dafür.

Danke trotzdem für den Reminder. (:

Ich wette, das ist einer der Punkte, die in 2.0 anders gehandhabt werden. Performance in allen Ehren, aber die MyBB-Entwickler nervt hoffentlich jeder Bug und jeder Umgang mit den Gelesen/Ungelesen-Markern selbst ausreichend, um es bei einer Neuprogrammierung anders zu gestalten.

Da werde ich wohl jeden Thread einzeln durchgehen müssen....
Zitieren
#9
Für Gäste werden die Informationen in Cookie gespeichert (da sie ja nicht anders erkannt werden können) und für Benutzer in der Datenbank. Daher ist eine Abfrage etwas komplizierter.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#10
Ja, das mit den Gästen, darauf hätte ich ggf. einfach verzichtet. Aber ich habe einen User-Account, der in beiden Tabellen nicht als uid vorkommt. Gibt es NOCH eine Tabelle, in der das gespeichert wird?
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
Question neueste themen auf externe seite anzeigen lassen??? happyspeedy 292 58.027 28.06.2014, 21:54
Letzter Beitrag: Jockl
  Geburtstage abfragen? Yasilein 4 349 07.06.2014, 16:12
Letzter Beitrag: Jockl
  Neueste Themen Box? :D Rasta 2 1.195 12.10.2011, 21:18
Letzter Beitrag: Rasta
  Titel bei eigener Seite fehlt Rev0 17 2.217 13.03.2011, 15:56
Letzter Beitrag: Rev0
  Shoutbox & Neueste Themen Übersicht? g!0-Tech 1 937 05.12.2010, 09:57
Letzter Beitrag: Jockl