Beiträge mit bbcode post und in der Folge letzte Aktivitäten können teilweise nicht aufgerufen werden

  • Affected Version
    WoltLab Suite 5.3
    Affected App
    WoltLab Suite Forum

    Edit: Ursache ist das Themen Ignorieren Plugin, s. Beitrag 2.

    Der Aufruf mancher Beiträge mit Beitragsvorschau [bbcode post / woltlab-metacode data-name="post" / postEmbeddedEntry] führt bei manchen unserer User zu Fehlermeldungen wie dieser:

    Fehlermeldung post
    Requested URL
    GET /wbb4/forum/index.php?thread/17103-kingdom-rush-rift-in-time/&postID=556686
    Referrer
    https://www.unknowns.de/wbb4/forum/index.php?unread-thread-list/
    WoltLab Suite
    5.3.5
    PHP
    7.4.16
    Error Message
    Argument 1 passed to wbb\data\post\Post::setThread() must be an instance of wbb\data\thread\Thread, null given
    Type
    TypeError
    File (Line)
    /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/Post.class.php (328)
    Stacktrace
    1. [internal function] (?): wbb\data\post\Post->setThread(…)
    2. /homepages/37/d247992905/htdocs/wbb4/lib/data/DatabaseObjectDecorator.class.php (86): call_user_func_array(…)
    3. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (246): wcf\data\DatabaseObjectDecorator->__call(…)
    4. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (192): wbb\data\post\ViewablePostList->readThreads(…)
    5. /homepages/37/d247992905/htdocs/wbb4/forum/lib/system/message/embedded/object/PostMessageEmbeddedObjectHandler.class.php (65): wbb\data\post\ViewablePostList->readObjects(…)
    6. /homepages/37/d247992905/htdocs/wbb4/forum/lib/system/message/embedded/object/PostMessageEmbeddedObjectHandler.class.php (26): wbb\system\message\embedded\object\PostMessageEmbeddedObjectHandler->getAccessibleObjects(…)
    7. /homepages/37/d247992905/htdocs/wbb4/lib/system/message/embedded/object/MessageEmbeddedObjectManager.class.php (267): wbb\system\message\embedded\object\PostMessageEmbeddedObjectHandler->loadObjects(…)
    8. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (205): wcf\system\message\embedded\object\MessageEmbeddedObjectManager->loadObjects(…)
    9. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (183): wbb\data\post\ViewablePostList->readEmbeddedObjects(…)
    10. /homepages/37/d247992905/htdocs/wbb4/lib/page/MultipleLinkPage.class.php (163): wbb\data\post\ViewablePostList->readObjects(…)
    11. /homepages/37/d247992905/htdocs/wbb4/lib/page/MultipleLinkPage.class.php (131): wcf\page\MultipleLinkPage->readObjects(…)
    12. /homepages/37/d247992905/htdocs/wbb4/forum/lib/page/AbstractThreadPage.class.php (173): wcf\page\MultipleLinkPage->readData(…)
    13. /homepages/37/d247992905/htdocs/wbb4/forum/lib/page/ThreadPage.class.php (73): wbb\page\AbstractThreadPage->readData(…)
    14. /homepages/37/d247992905/htdocs/wbb4/lib/page/AbstractPage.class.php (291): wbb\page\ThreadPage->readData(…)
    15. /homepages/37/d247992905/htdocs/wbb4/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
    16. /homepages/37/d247992905/htdocs/wbb4/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
    17. /homepages/37/d247992905/htdocs/wbb4/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    18. /homepages/37/d247992905/htdocs/wbb4/forum/index.php (9): wcf\system\request\RequestHandler->handle(…)

    Befindet sich ein solcher Beitrag unter den letzten Aktivitäten, wird ein Aufruf des Dashboards mit dieser Fehlermeldung quittiert:

    Fehlermeldung dashboard
    Requested URL
    GET /wbb4/
    Referrer
    WoltLab Suite
    5.3.5
    PHP
    7.4.16
    Error Message
    Undefined offset: 7394
    Type
    wcf\system\exception\ErrorException
    File (Line)
    /homepages/37/d247992905/htdocs/wbb4/lib/system/WCF.class.php (343)
    Stacktrace
    1. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (246): wcf\system\WCF::handleError(…)
    2. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (192): wbb\data\post\ViewablePostList->readThreads(…)
    3. /homepages/37/d247992905/htdocs/wbb4/forum/lib/system/message/embedded/object/PostMessageEmbeddedObjectHandler.class.php (65): wbb\data\post\ViewablePostList->readObjects(…)
    4. /homepages/37/d247992905/htdocs/wbb4/forum/lib/system/message/embedded/object/PostMessageEmbeddedObjectHandler.class.php (26): wbb\system\message\embedded\object\PostMessageEmbeddedObjectHandler->getAccessibleObjects(…)
    5. /homepages/37/d247992905/htdocs/wbb4/lib/system/message/embedded/object/MessageEmbeddedObjectManager.class.php (267): wbb\system\message\embedded\object\PostMessageEmbeddedObjectHandler->loadObjects(…)
    6. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (205): wcf\system\message\embedded\object\MessageEmbeddedObjectManager->loadObjects(…)
    7. /homepages/37/d247992905/htdocs/wbb4/forum/lib/data/post/ViewablePostList.class.php (183): wbb\data\post\ViewablePostList->readEmbeddedObjects(…)
    8. /homepages/37/d247992905/htdocs/wbb4/forum/lib/system/user/activity/event/PostUserActivityEvent.class.php (30): wbb\data\post\ViewablePostList->readObjects(…)
    9. /homepages/37/d247992905/htdocs/wbb4/lib/data/user/activity/event/ViewableUserActivityEventList.class.php (83): wbb\system\user\activity\event\PostUserActivityEvent->prepare(…)
    10. /homepages/37/d247992905/htdocs/wbb4/lib/system/box/AbstractDatabaseObjectListBoxController.class.php (352): wcf\data\user\activity\event\ViewableUserActivityEventList->readObjects(…)
    11. /homepages/37/d247992905/htdocs/wbb4/lib/system/box/RecentActivityListBoxController.class.php (164): wcf\system\box\AbstractDatabaseObjectListBoxController->readObjects(…)
    12. /homepages/37/d247992905/htdocs/wbb4/lib/system/box/AbstractDatabaseObjectListBoxController.class.php (326): wcf\system\box\RecentActivityListBoxController->readObjects(…)
    13. /homepages/37/d247992905/htdocs/wbb4/lib/system/box/AbstractDatabaseObjectListBoxController.class.php (293): wcf\system\box\AbstractDatabaseObjectListBoxController->loadContent(…)
    14. /homepages/37/d247992905/htdocs/wbb4/lib/system/box/RecentActivityListBoxController.class.php (131): wcf\system\box\AbstractDatabaseObjectListBoxController->hasContent(…)
    15. /homepages/37/d247992905/htdocs/wbb4/lib/data/box/Box.class.php (295): wcf\system\box\RecentActivityListBoxController->hasContent(…)
    16. /homepages/37/d247992905/htdocs/wbb4/lib/data/box/Box.class.php (280): wcf\data\box\Box->hasContent(…)
    17. /homepages/37/d247992905/htdocs/wbb4/templates/compiled/2_wcf_1_cms.php (2892): wcf\data\box\Box->render(…)
    18. /homepages/37/d247992905/htdocs/wbb4/lib/system/template/TemplateEngine.class.php (334): include(…)
    19. /homepages/37/d247992905/htdocs/wbb4/lib/page/AbstractPage.class.php (323): wcf\system\template\TemplateEngine->display(…)
    20. /homepages/37/d247992905/htdocs/wbb4/lib/page/AbstractPage.class.php (114): wcf\page\AbstractPage->show(…)
    21. /homepages/37/d247992905/htdocs/wbb4/lib/system/request/Request.class.php (83): wcf\page\AbstractPage->__run(…)
    22. /homepages/37/d247992905/htdocs/wbb4/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    23. /homepages/37/d247992905/htdocs/wbb4/index.php (9): wcf\system\request\RequestHandler->handle(…)

    Diese Fehler sind insoweit reproduzierbar, dass ein Entfernen des entsprechenden bbcodes aus dem Beitrag oder ein Ersetzen durch einen Link mit Text das Aufrufen des Beitrags und des Dashboards wieder ermöglicht. Allerdings tritt der Fehler nicht bei allen Beiträgen mit post bbcodes und auch nur bei einem Teil der User und bei Gästen offenbar gar nicht auf.

    Link 1 führt (bei einem Teil der User) zu besagten Fehlermeldungen, Link 2 nicht.

    Wir könnten ja gut damit leben, diese Vorschaufunktion komplett zu deaktivieren. Dafür scheint aktuell aber Quellcodeeingriff nötig zu sein …

  • Ich würde mich freuen wenn von Seiten Woltlab in der Class wbb\data\post\ViewablePostList die Zeile 240 wie folgt abgeändert wird. Hierbei ist nur die Zeile 241 geändert :)

    PHP: ViewablePostList.class.php
    $threadList = new ThreadList();
    $threadList->setObjectIDs($this->threadIDs);
    $threadList->readObjects();
    $threads = $threadList->getObjects();
    
    foreach ($this->objects as $post) {
        $post->setThread($threads[$post->threadID]);
    } 

    Das ganze ist ein wenig inkonsistent gegenüber anderen Sachen im System. Manchmal wird setObjectIDs und manchmal wird der ConditionBuilder verwendet. Sobald die objectIDs gesetzt wurden, wird ja leider sämtliche ConditionBuilder Einträge ignoriert, was zu diesem Fehler führt, weil vorher in der Class wbb\system\message\embedded\object\PostMessageEmbeddedObjectHandler setObjectIDs aufgerufen wird.

    Entweder müsste ebenfalls dort der ConditionBuilder verwendet werden zum filtern oder in derwbb\data\post\ViewablePostList  setObjectIDs.

    Ich hoffe das dies geändert werden könnte.

    Danke :thumbup:

  • Wir könnten ja gut damit leben, diese Vorschaufunktion komplett zu deaktivieren. Dafür scheint aktuell aber Quellcodeeingriff nötig zu sein …

    Ihr könntet doch den BBCode auch löschen, dann würde keine Vorschau mehr generiert.

    Liebe Grüße
    Susi

Participate now!

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