Fixed New Posts / New Threads Widgets do not check thread entity ignore status

Kirby

Well-known member
Affected version
2.1.3
This is a bit of an edge case between a bug report and a feature request:

The New Posts / New Threads Widgets do have code to check if the viewing user is ignoring the thread starter (or last poster) and filter our those items if this is the case.

New Posts Widget
PHP:
foreach ($threads = $threadFinder->fetch() AS $threadId => $thread)
{
    if (!$thread->canView()
        || $visitor->isIgnoring($thread->user_id)
        || $visitor->isIgnoring($thread->last_post_user_id)
    )
    {
        unset($threads[$threadId]);
    }
}

So the idea here seems to be to not show content that is ignored by the viewing user.

The thread entity does have a method isIgnored() for that specific case wich does get checked by XF\FindNew\Thread::filterResults().
So if this method is extended by Add-ons, the thread will be hidden in What's New - it will however not be hidden in New Posts / New Threads Widgets as those do not call this method.

It would be nice if this call could be added there as well for consistency and easy extendability.
 
Last edited:
Thank you for reporting this issue. It has now been resolved and we are aiming to include it in a future XF release (2.1.4).

Change log:
Use isIgnored methods in widget classes where available
Any changes made as a result of this issue being resolved may not be rolled out here until later.
 
Back
Top Bottom