Blockieren von Benutzern - Anzeige der Themen im Forum

  • Affected App
    WoltLab Suite Forum

    Wenn ich einen Benutzer blockiere, wird das Thema seit 5.2 an manchen Stellen ausgeblendet.


    Innerhalb des Forums kann ich ein Thema gar nicht sehen, wenn der blockierte Nutzer er gestartet hat.

    In den ungelesenen Themen sehe ich Themen blockierter Nutzer auch nicht.


    Bin ich dagegen in der Forenübersicht (Menüpunkt Forum), taucht das Forum auf. Ist das letzte Posting vom blockierten Benutzer, ist das in einem Hellgrau. Klicke ich da drauf, kann man wieder das gesamte Thema lesen.


    Also irgendwie finde ich ja, dass man Themen blockierter Benutzer entweder überall komplett ausblenden sollte oder sie sind eben überall nur in Hellgrau und damit sichtbar. Mal so und mal so ist für mich eher ein Fehler.


    Screenshots sind auch hier zu sehen, aber da es hier im Forum getestet wurde, ist das alles auch schnell und einfach nachvollziehbar.

    RE: FAQ zur Bedienung von Woltlab Suite 5.2

    RE: Mehr Optionen für die Blockierfunktion

    Liebe Grüße
    Susi

  • Eine sinnvolle Variante wäre auch die, die andere Systeme wählen: Anstatt eine hellgraue Farbe zu wählen (die ja nun auch nicht gerade in allen Styles/Farben Sinn macht), wäre der Beitrag einfach einzuklappen (Collapse-Funktion).

    Der Beitrag wird dann einfach als "schmaler Streifen" mit dem Benutzernamen und dem Vermerk, dass dieser User blockiert ist, angezeigt.


    Dazu käme dann die Option im Balken: "Beitrag anzeigen" und er könnte nach Belieben "aufgeklappt" werden.

    Also technisch ähnlich gelöst wie der so genannte "Spoiler", der ja ebenfalls einfach nur "eingeklappt" wird.

    Ist eine ganz simple Funktion und leicht umzusetzen.


    Dadurch entsteht auch nicht dieser viel diskutierte Konflikt, dass blockierte Beiträge an manchen Stellen gar nicht, an anderen voll und an wieder anderen "irgendwie komisch" zu sehen sind. Die technische Umsetzung wäre dadurch automatisch an allen Stellen dieselbe und auch nicht "farbabhängig".

    So würde ich persönlich das lösen.

    Gruß

    Jörg

    (Jaydee)

  • Modelcarforum , nimms mir nicht übel, aber bitte sieht dir das erst noch einmal selber ganz genau an.


    Der Beitrag wird dann einfach als "schmaler Streifen" mit dem Benutzernamen und dem Vermerk, dass dieser User blockiert ist, angezeigt.

    Das ist ja so in den Beiträgen! Hier geht es um die Themen eines blockierten Themenstarters und die Beitragsanzeige des letzten Poster in der Forenübersicht, wie man es in den gesetzten Links auch sieht.


    Also, mir gefiel da die Variante aus 5.1 wesentlich besser. Das war wenigstens einheitlich. Jetzt hat man versucht den Wünschen einige Betreiber nachzukommen, kann es aber scheinbar nicht gänzlich. Was soll ich dazu in die FAQ schreiben?


    "Eigentlich werden Themen der blockierter User ausgeblendet, nur wenn er als letzer gepostet dann, dann siehst du ihn Hellgrau."


    Wo soll ein User denn da den Sinn drin erkennen?


    Macht es, wie es technisch möglich ist, aber welche Lösung ihr auch findet, sie sollte meiner Ansicht nach wenigstens in sich konsistent sein. Die jetzige Lösung ist das nicht und daher in meinen Augen keine Gute. Wenn das so gewollt war, finde ich das schon echt traurig.

    Liebe Grüße
    Susi

  • Du musst schon unterscheiden zwischen Themen in einer Themenauflistung und Beiträgen. Die Themen werden anscheinend konsequent nicht dargestellt. Die "graue" Darstellung gibt es im Forum lediglich für letzte Beiträge innerhalb der Foren- und Themenauflistung. Ich verstehe Alex dahingehend, dass es an dieser Stelle zu aufwändig wäre, den Beitrag davor von einem nicht blockierten Benutzer zu ermitteln und anzeigen zu lassen, Den letzten Beitrag hier einfach auszublenden und die Spalte Letzte Antwort einfach leer zu lassen wäre auch nicht schön. Bezüglich der Inkonsistenz gebe ich Dir Recht, aber anscheinend gibt hier keine technisch sinnvolle Möglichkeit, das Verhalten zu vereinfachen.


    Frage An Alex am Rande: Wie sortiert Ihr eigentlich die Themen ignorierter Benutzer aus der Themenauflistung aus?


    PHP: ViewableThread.class.php
    if (!empty(UserProfileHandler::getInstance()->getIgnoredUsers())) {
                                $conditionBuilder->add("thread.userID NOT IN (?)", [UserProfileHandler::getInstance()->getIgnoredUsers()]);
                            }


    allein kann es nicht sein. Wenn ich das auskommentiere, ändert sich nichts am Verhalten.





    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier.

  • Ich kann das aus technischer Sicht in gewisser Weise nachvollziehen, aber das kann man keinem User so erklären, sorry.


    Denn der klickt auf dieses letzte Poster graue Posting und dann sieht er ja das ganze Thema, das er vorher nie angezeigt bekam. Klickt er zurück in das Forum, sieht er das Thema gar nicht mehr. Das wird manch einen doch sehr verwirren, der eigentlich dachte, diese Themen würde er gar nicht mehr angezeigt bekommen.


    Und wenn man dafür die FAQ formulieren möchte, sieht man auch was das eigentlich für ein Murks ist. Sorry, aber ein anderes Wort fällt mir dafür nicht ein ;) . Ganz grundsätzlich finde ich die Software natürlich auch trotzdem weiterhin toll ^^ , aber diese Funktion ist nicht rund.

    Liebe Grüße
    Susi

    • Official Post

    Ich verstehe Alex dahingehend, dass es an dieser Stelle zu aufwändig wäre, den Beitrag davor von einem nicht blockierten Benutzer zu ermitteln und anzeigen zu lassen, Den letzten Beitrag hier einfach auszublenden und die Spalte Letzte Antwort einfach leer zu lassen wäre auch nicht schön.

    Korrekt. Konkret kennen wir den letzten Beitrag eines Themas bzw. Forums bereits, dies wird statisch ermittelt und abgelegt (wbb1_thread.lastPostID bzw. wbb1_board_last_post). Auf Basis dieser Daten können wie effizient und ohne Zusatzlast den letzten Beitrag (bzw. das letzte Thema) ermitteln, dabei ist es unerheblich, ob man 10 oder 1000 Foren hat, der Aufwand bleibt gleich.


    Sobald aber eine Filterung notwendig ist, müssen für diese Foren bzw. Themen per gesonderter Datenbank-Abfrage der letzte Beitrag zur Laufzeit ermittelt werden. Dies muss für jedes Forum bzw. Thema separat wiederholt werden, bei dem der zwischengespeicherte Wert nicht verwendet werden kann, weil es sich um einen ignorierten Benutzer handelt.


    Bei einem einzelnen Thema in einem kleinen Forum ist das alles kein Thema, aber wenn wir das in etwas größeren Dimensionen betrachten, wird das sehr schnell ziemlich rechenintensiv.


    Nehmen wir exemplarisch mal das Smalltalk-Thema mit seinen 46.000 Antworten. Die letzte Antwort live zu ermitteln bedeutet die folgende Abfrage auszuführen (die "Schritte" illustrieren, was auf Seiten der Datenbank passiert):

    1. Ermittle alle Beiträge, die zu diesem Thema gehören.
    2. Sortiere diese in absteigender chronologischer Reihenfolge.
    3. Selektiere den neusten Beitrag, der nicht von Benutzer X, Y und Z verfasst wurde.
    4. Liefere diese eine ID zurück.

    Und so sieht der Aufruf aus, wenn wir den letzten Beitrag nur auf Basis der bereits in der Tabelle zwischengespeicherten Daten ermitteln:

    1. Fertig, denn alle Daten sind bereits bekannt.


    Das Problem ist also nicht, dass wir die Funktion nicht so implementieren könnten. Das Problem ist, dass der Rechenaufwand in so einem starken Missverhältnis steht, dass bei einer Umsetzung die Nachteile mehr als deutlich überwiegen. Die Crux an der Sache ist, dass der Aufwand mit steigender Beitragsanzahl zunimmt, gleichzeitig der Bedarf an der Blockierenfunktion ebenfalls mit steigender Benutzerzahl ebenfalls zunimmt. Noch viel problematischer ist, dass diese zusätzliche Last sich negativ auf alle Nutzer auswirken würde und nicht nur auf diese begrenzt, die diese Funktion aktiv verwenden.


    Frage An Alex am Rande: Wie sortiert Ihr eigentlich die Themen ignorierter Benutzer aus der Themenauflistung aus?

    BoardPage, Zeile 295ff.

Participate now!

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