Seitenzahl (Pagination) stimmt nicht aufgrund gelöschter Beiträge

  • Affected App
    WoltLab Suite Forum

    Hallo,

    ich melde einen Fehler, welcher zwar vor über einem Jahr schon mal als "Erledigt" abgetan wurde, aber ich möchte nochmal hinterfragen, wieso man die Situation nicht anders löst. Das alte Thema ist dieses hier: Pagination stimmt nicht

    Konkret das Problem anhand eines Beispiels: Wir haben ein Thema mit 1000 Antworten (einschließlich Startbeitrag). Beim Standardseitenumfang von 20 Beiträgen pro Seite hat das Thema exakt 50 Seiten. Ruft man das Forum (Board) auf, in welchem das Thema ist, werden dort kleine Seitenzahlen (Pagination) angezeigt, mit welchen man schnell auf diverse Seiten des Themas springen kann.

    Das Problem: Sind von den 1000 Beiträgen 100 gelöscht (nicht vollständig, sondern nur im "Papierkorb"), dann werden in der Pagination nur 45 Seiten angezeigt. Klickt man auf die vermeintlich letzte 45. Seite, landet man im Thema auch auf Seite 45, stellt dann aber fest, dass es 50 Seiten gibt. Das Problem tritt auf, wenn man die Option Hinweis bei gelöschten Beiträgen anzeigen aktiviert hat, was in manchen Communities aufgrund der Transparenz der moderativen Arbeit gewollt ist.

    Woran liegt es: In der Datenbank gibt es eine Tabelle wbb1_thread. Jede Zeile in der Tabelle repräsentiert ein Thema im Forum. Die Spalte replies der Tabelle speichert, wie viele Beiträge aus der wbb1_post Tabelle dem Thema zugeordnet sind (Denormalisierung). Allerdings werden gelöschte Beiträge bei diesem Zähler nicht mitgezählt.

    Eine einfache Lösung: Ein zweites denormalisiertes Feld in der Thread Tabelle, welches sich die Beitragszahl wirklich aller Beiträge merkt (alternativ nur die Anzahl der gelöschten Beiträge). Daraus lässt sich dann die korrekte Seitenzahl für die Pagination ohne erhöhten Rechenaufwand bestimmen.

    Wahrscheinlich wird dieses Thema schnell mit "Ist kein Fehler" gelabelt, da man ja schon im oben verlinkten Thema sieht, dass es zumindest damals das vom Entwickler gewollte Verhalten ist. Trotzdem erstelle ich das Thema hier, damit mein Wunsch nach Korrektur dieses offensichtlichen Fehlers zumindest für die Zukunft in die Planung mit aufgenommen werden wird. Ich habe schon zu WBB3 Zeiten Meldungen meiner Benutzer zu dem Problem bekommen. Mit dem WBB4 hat sich daran leider nichts geändert und ich werde weiterhin darauf angesprochen.

Participate now!

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