Heisse Themen

  • Die Formel zur Berechnung der "Temperatur" des Themas ist zu finden in wbb/lib/data/thread/HotThreadList.class.php in der Konstante TEMPERATURE_FORMULA. Dort steht:


    const TEMPERATURE_FORMULA = '((((thread.replies + .1) * 50 + thread.views) * 1000000000000) / POWER(UNIX_TIMESTAMP() - thread.time, 1.5))';


    Anders formuliert:


    ( [Anzahl Antwort] * 50 + [Anzahl Zugriffe] ) * Hoher Faktor / ( [Aktuelle Zeit] - [Zeitpunkt der Themenerstellung] )1,5


    Das heißt jede Antwort im Thema ist 50 mal so viel Wert wie ein Zugriff. Zudem ist ein Thema automatisch "kälter", je länger dessen Erstellung zurückliegt.


    In deinem Beispiel im Anhang erzeugen die fünf Zugriffe genug wärme, sodass nach der obigen Formel das neu erstellte Thema die höchste Temperatur in deinem Forum hat.

  • na dann... ;)

    Über die Sinnhaftigkeit der Formel und die Tatsache, dass sie nicht anpassbar ist, lässt sich sicherlich streiten. Für das WBB3 hatte ich mir für meine Community ebenfalls ein Heiße Themen Plugin gebastelt, welches man konfigurieren (Verhältnis von Beitrag, Zugriff und Like) konnte und meines Erachtens nach bessere Ergebnisse angezeigt hat. Leider hatte ich beim Umzug auf das WBB4 nicht die Zeit dieses Plugin anzupassen. Vielleicht schaffe ich es ja irgendwann das mal nachzuholen.


    Die Lösung von WoltLab macht nämlich folgendes: Sie zeigt nur Themen an, welche maximal X Tage alt sind (einstellbar im ACP) und zählt alle Antworten und Zugriffe als wärmende und das Alter als kühlenden Faktor.
    Meine Lösung hat einen anderen Ansatz verfolgt: Ich habe alle Antworten, Zugriffe und Likes innerhalb der letzten X Stunden (einstellbar im ACP) als wärmende Faktoren gezählt und es gab keine kühlenden Faktoren. Stattdessen zählte ich ja nur Antworten, Zugriffe und Likes innerhalb der letzten X Stunden, sodass all diese Faktoren, sobald sie älter als X Stunden waren, automatisch raus fielen und das Thema nach und nach abgekühlt ist. Vorteile bei meinem System: Sammelthemen, welche schon recht alt sind, können ebenfalls wieder heiß werden, sollte dort drin eine neue Diskussion entstehen. Zudem habe ich keinen Bezug zur Erstellungszeit hergestellt, da der Zeitpunkt der Erstellung eines Themas nichts damit zu tun hat, ob das Thema gerade in diesem Moment stark frequentiert wird.

  • dies wäre logischer... :thumbup:


    aber woltlab hat sich sicherlich was dabei gedacht, das ein neu erstellter thread auch in der "heissen" box :P
    erscheint.

  • Hoher Faktor / ( [Aktuelle Zeit]

    Was ist denn der Hoher Faktor / Aktuelle Zeit ??


    Ich habe das Ganze mal von "Heiße Thema" zu "Neue Themen im Trend" umbenannt und nutze es jetzt mal. Es macht allerdings nur auf der Hauptseite Sinn. Die Idee dahinter ist ja nicht schlecht. Es erklärt sich halt nur schwer, vielleicht sind zu viele Faktoren da drin. Das ältere Themen dort nicht auftauchen macht ja eigentlich Sinn, zumindest für die meisten Communitys. Vielleicht könnte man aber trotzdem noch sowas bauen, wo man auch ältere Themen drin hat, dann würde der Begriff "Heiße Themen" auch passen.

  • Hoher Faktor ist einfach eine große Zahl. In diesem Fall 1000000000000. Im zweiten Post hier im Thema findest du die genaue Formel.

  • Hab ich bereits gesehen. Jtz könnte ich noch fragen für was die große Zahl gut sein soll. ^^ Die Zeit wird als Datum berechnet oder als Uhrzeit?? Ich würde es nur meine User erklären wollen, aber gut man kann halbwegs was mit Anfangen beim erklären.

  • Jtz könnte ich noch fragen für was die große Zahl gut sein soll.

    Spontan vermute ich, dass die Multiplikation mit dem Faktor dazu dient, dass die Zwischenergebnisse beim auswerten der Formel nicht zu klein und durch Runden oder ungenaue Zahlendarstellung verfälscht werden.

  • Ich hab den Wert "thread.time, 1.5" mal auf "thread.time, 1.0" geändert, dass zeigt jetzt realistische Ergebnisse an, dass aktive Themen nicht gleich von neue sofort von Platz 1 gehauen werden. Den Wert "* 50" für Antworten in den Themen kann man so lassen, der passt ganz gut. Ich habe dann noch eine "* 2" hinter den Zugriffen eingefügt, damit neue Themen mal kurz für paar Stunden auf Platz liegen, aber dann schneller wieder runter gehen als bisher, wenn keine Antworten folgen.


    Die 90 Tage Grenze für neue Themen kann man in der php aber nicht ändern, weis jemand ob es da eine Möglichkeit gibt in irgend einer php?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!