Leidiges Thema: Die "neue Beiträge"-Funktion -Lösung!?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Leidiges Thema: Die "neue Beiträge"-Funktion -Lösung!?

    Alle kennen diese Funktion in diversen Foren, was wurde geschrieben als ich weg war?

    Habe hier im Forum von einem Mod gelesen, das es keine wirkliche Lösung für diese Problem gibt.

    Ich will hier mal meine Vorstellen und ein paar Meinungen dazu einholen, Verbesserungsvorschläge etc.

    Los gehts:
    Zu erst gibt es in der BenutzerDB 2 Felder, eine namens Session_Time und eine Namens LastVisit!
    Der Inhalt des Feldes Session_Time wird bei jedem Click mit dem aktuellen Unixtimestamp ersetzt, ausgenommen der Fall, es ist der erste Click, also der Moment, wo der User das erste Mal die Seite aufruft und die Session erst gestartet wird. In diesem Augenblick wird dann der Wert aus dem Feld Session_Time in das Feld LastVisit geschoben.

    Das ist die Grundlage für die neue Beiträge Funktion. Alle Themen, die einen größeren Unixtimestamp in der ThreadDB haben als das Feld LastVisit in der BenutzerDB sind neue Beiträge.

    Schön und gut so weit - Doch schon tritt ein weiteres Problem auf. Ihr habt ein Thread gelesen, aber in der Boardansicht wird es immernoch als NEU angezeigt. Was also tun damit man nicht unnötig die mysqlDB zumüllt mit den IDs gelesener Threads?

    Die Antwort lautet Sessions!
    Es wird an den Session Array ein weiterer Array gehängt namens read_threads, dessen Keys die ThreadIDs sind und dessen Values den letzten Besuch in diesem Thema(mit Timestamp also) enthalten.

    So kann man dann leicht in der Boardansicht überprüfen ob man den Thread schon gelesen hat oder nicht, und wenn doch, zugleich überprüfen ob seitdem schon wieder ein Beitrag dort verfasst wurde.

    So ein Array kann natürlich ziemlich groß werden, aber die Session zerstört sich ja selber wenn der Benutzer den Browser schliesst.
    ----------------------------------------------------------------
    Ich habe es in meinem Forum so eingebaut und es funktioniert sehr gut und zuverlässig. Mich würde interessieren was ihr zu dieser Lösung sagt?! Gut schlecht? Sollte man lieber lassen?

    LG Chris

  • #2
    wenn man die Seite verlässt, ohne sich alle neuen Threads anzugucken, dann sind diese beim nächsten Session-Start als gelesen markiert, obwohl das gar nicht stimmt! oder nicht?

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      richtig, aber das ist auch gut so...

      denn du kannst und willst nicht jeden Thread lesen, ist in anderen Foren auch nicht anders.

      Dann müsstest du es so machen, dass du alle ThreadIDs speicherst, oder zumindest teilweise.

      Das ist so Datenbank lastig, das man das quasi vergessen kann. Ich kann das sagen weil ich das schonmal gemacht habe.

      P.S.: Und ich sehe das wie gesagt nicht als nachteil, finde es eher blöde wenn die weiterhin dann als neue beiträge angezeigt werden, weil letztlich sind sies ja doch nicht

      Kommentar


      • #4
        Keiner mehr was dazu zu sagen?

        Kommentar


        • #5
          Tja, wie du schon sagst, dass ganze ist ein leidiges Thema welches hier schon zig mal besprochen wurde, wieso sollte man sich also die Mühe machen schon wieder etwas dazu zu sagen...

          Jede Methode hat ihre Vor und Nachteile, und viele verschiedene wurden hier schon gepostet, was du benutzt ist deine Entscheidung oder wo für dich eben die Pros die Contras überwiegen..


          Floriam
          PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

          Kommentar

          Lädt...
          X