Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Forum Eigenbau: "Gelesene/Ungelesene Themen"

  1. #1
    Tobias_S
    Gast

    Forum Eigenbau: "Gelesene/Ungelesene Themen"

    Hallo,

    erst mal ein Dankeschön an die Betreiber des Forums! Durch die ganzen Beträge habe ich schon oft, auch als nicht angemeldeter Benutzer, eine sehr gute Hilfestellung zu diversen Problemen bekommen. Zu dem folgendem Problem/Frage konnte ich mit der Suchfunktion allerdings nichts brauchbares finden. Verzeiht mir deshalb, wenn dieses Thema schon mal behandelt wurde.

    Wie aus dem Titel bereits hervorgeht, möchte ich gerne ein kleines Forum selbst erstellen. Den groben Aufbau der Datenbank usw. hab ich mir schon ein bisschen von phpBB abgeguckt (ob der gut oder schlecht ist, sei mal dahin gestellt) und eigentlich auch größtenteils problemlos verstanden. Eigentlich ist ja so ein Forum kein großes Drama, behaupte ich in meinem anfänglichem Leichtsinn einfach mal
    Jedenfalls hab ich in Gedanken alles durchgespielt, mir fällt jedoch nichts brauchbares ein, wie man dem Benutzer zeigen kann, welche Themen neu/ungelesen sind und welche nicht. Mein bisherigen theoretischer Ansatz:

    Jedes erstellte Thema, enthält ein zusätzlichen Feld, in dem alle (mit Außnahme des Erstellers) ID's der Benutzer, durch ein Komma getrennt, gespeichert sind. Beim Öffnen des Themas wird dann die eigene ID's des Benutzers aus dem Feld gelöscht (wie das dann realisiert werden soll weiß ich noch nicht). Wenn jemand auf das Thema antwortet, werden wieder alle (mit Außnahme des Erstellers) ID's hineingschrieben... usw.

    Ist mein Ansatz sinnvoll? Das einzige Problem sehe ich darin, dass das Feld des Themas ganz schön voll werden könnte, wenn man eine große Anzahl an Benutzer hat (was aber in meinem Fall eher nicht zutrifft). Wie wird das "Problem" bei anderen namhaften Foren gehandhabt?

    Vielen Dank schon mal im voraus!

    PS:Werde erst in 1-2 Tage wieder antworten können.
    Geändert von Tobias_S (25-03-2007 um 22:46 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    15.05.2005
    Ort
    Ostschweiz
    Beiträge
    20
    Am Besten machst du gleich eine eigene Tabelle wo jeweils beim Lesen des Themas ein Eintrag gemacht wird: User-ID und Themen-ID.
    Dann hast du auch keine Probleme mit löschen oder bearbeiten. Gibt dann halt einfach eine ziemlich unübersichtliche Tabelle...

  3. #3
    Tobias_S
    Gast
    Vielen Dank schon mal für den Tip!
    Man geht also standardmäßig davon aus, dass alle Themen ungelesen sind. Und in der Tabelle stehen dann (im wilden durcheinander) alle Themen die vom betreffenden User bereits gelesen wurden. Wenn einer neuer Beitrag gemacht wird, werden alle Zeilen mit dem Thema wieder aus der Tabelle gelöscht. Hab ich das soweit richtig verstanden?
    Und beim Forumindex wo alle Themenbereiche aufgelistet werden, wie macht man die Markierung da am besten? Ich hab mir überlegt, wenn man im jedem Forum nur den letzten Beitrag des ersten Themas betrachtet und überprüft ob er gelesen/ungelesen ist, müsste das genügen oder soll man alle Themen im Themenbereich durchgehen? Ich weiß nicht ob dass dann bemerkbar länger dauern würde, wenn man fast die ganze Datenbank durchgeht...

  4. #4
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Ich persönlich würde für jeden Benutzer einzeln ein File haben, in welchem steht, welche Beiträge er gelesen hat (die Themen durchnummerieren und dann jeweils auch die Beiträge nochmals separat durchnummerieren...)

    Gibt allerdings sicherlich auch noch intelligentere Lösungen...

    Mfg Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  5. #5
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Zitat Zitat von bischi Beitrag anzeigen
    Ich persönlich würde für jeden Benutzer einzeln ein File haben, in welchem steht, welche Beiträge er gelesen hat (die Themen durchnummerieren und dann jeweils auch die Beiträge nochmals separat durchnummerieren...)
    Ich hoffe das war sarkastisch gemeint...


  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von Gaert Beitrag anzeigen
    Ich hoffe das war sarkastisch gemeint...
    Ne - eigentlich nicht...

    Warum dieser Vorschlag (ok - vielleicht sollte man File gegen Datenbankeintrag ersetzen ):
    1) Die meisten Besucher werden sowieso wenige Beiträge lesen, da ist das wohl am speicherplatzsparendsten.
    2) Wenn man die Beiträge durchnummeriert, hat man den Vorteil, dass man mittels eines "Alle als gelesen markieren" diese Liste auf einen Beitrag kürzen kann.
    3) Keine Ahnung - mir ist nix gescheiteres eingefallen.

    Hab mir darüber auch noch nie wirklich Gedanken gemacht... Ich fand nur, dass meine Lösung etwas weniger schlecht als die bereits vorgeschlagene war (lasse mich aber gerne vom Gegenteil überzeugen).

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Tobias_S
    Gast
    Habs jetzt so gemacht wie ich vorher erwähnt habe:
    Ein Tabelle, mit 3 Feldern (forum_id,topic_id,user_id) in diese Felder werden bei jeden neuem Thema/Beitrag alle leseberechtigten User eingetragen, und wieder gelöscht, wenn sie das entsprechende Thema öffnen. Funktioniert einwandfrei. Auch wenn ich subjektiv glaube, dass allmählich de Geschwindigkeit des Seitenaufbaus zu wünschen übrig lässt, könnte aber auch meiner alten AMD K-6 400Mhz Serverkrücke liegen

    Danke an euch, für eure Vorschläge!

  8. #8
    TheHawk
    Gast
    Eine möglichkeit wäre bei jeden Aufruf den Timestamp des letzen SEitenaufrufes in einer Spalte in der userTable zu speichern. Beim nächsten Aufruf prüft man dann die Beiträge die zwischen den aktuellen und den zuletzt gespeicherten timestamp liegen und speichert die Beitrags IDs in einem Session-Array. Danach überschreibt man den alten Timestamp mit den aktuellen. Alle Beiträge die eine ID haben, welche in dem Session Array vorkommt, bekommen ein anderes Icon or whatever. Der Nachteil dabei ist das wenn man sich ausloggt oder das Fenster schliest, das die ungelsen Beiträge verloren gehen. Man könnte aber statt den Array in einer Session zu speichern, ihn serialisieren und in einer Spalte in der UserTable speichern.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •