Top Contributors of the Month

Top Contributors of the Month [Paid] v2.2.10

No permission to buy ($30.00)
There is a compatibility issue with the Daily Login Streaks add-on by @Painbaker.

When the Daily Login Streaks runs its cron entries or the cache is rebuilt, it can't execute its code properly due to the conflict:

Code:
src/XF.php(266): XF\Error->logError('Unable to rebui...', false)
#1 src/addons/M2N/TrophyEssentials/Repository/CumulativeTrophy.php(66): XF::logError('Unable to rebui...')
#2 src/addons/M2N/TrophyEssentials/Job/CumulativeTrophyRebuild.php(109): M2N\TrophyEssentials\Repository\CumulativeTrophy->rebuildCumulativeTrophy(Object(Wutime\TopContributors\Entity\CumulativeTrophy), Object(SV\DailyStatistics\XF\Entity\User))
#3 src/addons/M2N/TrophyEssentials/Job/CumulativeTrophyRebuild.php(42): M2N\TrophyEssentials\Job\CumulativeTrophyRebuild->rebuildById(20)
#4 src/XF/Job/Manager.php(275): M2N\TrophyEssentials\Job\CumulativeTrophyRebuild->run(8)
#5 src/XF/Job/Manager.php(205): XF\Job\Manager->runJobInternal(Array, 8)
#6 src/XF/Job/Manager.php(121): XF\Job\Manager->runJobEntry(Array, 8)
#7 src/XF/Admin/Controller/ToolsController.php(146): XF\Job\Manager->runByIds(Array, 8)
#8 src/XF/Mvc/Dispatcher.php(362): XF\Admin\Controller\ToolsController->actionRunJob(Object(XF\Mvc\ParameterBag))
#9 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Tools', 'RunJob', Object(XF\Mvc\RouteMatch), Object(DigitalPoint\Analytics\XF\Admin\Controller\Tools), NULL)
#10 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(DigitalPoint\Analytics\XF\Admin\Controller\Tools), NULL)
#11 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#12 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#13 src/XF.php(806): XF\App->run()
#14 admin.php(15): XF::runApp('XF\\Admin\\App')
#15 {main}

Disabling your add-on, fixes the issue. Would you mind looking at this?
 
Include all content types:
  • XFRM resources
  • XFRM reviews
  • XFMG entries
  • XFMG reviews
  • XFMG comments
  • XF profile comments
It's not so much a matter of adding them, more an issue of adding them and then having customers assume they can choose this many metrics and expect their site to run smoothly during periodic cache rebuilds.

I don't have XFRM so there's not much I can do to support that at the moment.

Include content types from:
  • AMS
  • RMS
  • UBS
  • CAS
  • Showcase
  • etc.
Similar to above; too many metrics is not good and I don't have access to any of these add-ons.

I'm already considering a v3.0 of this add-on that will do a daily build into a custom table for all statistics. The benefit being a wider number of statistics can be performantly tracked. The draw back is the "top contributors" or "leaderboards" would always be a day behind statistically. Meaning the leaderboard wouldn't include todays posts, threads, uploads, etc.
 
Wutime updated Top Contributors of the Month with a new update entry:

v2.2.7

  • Fix: Compatibility with M2N TrophyEssentials rebuild jobs by adjusting CumulativeTrophy repository methods to return true (success) on no-op functions
  • Fix: Prevented “Unable to rebuild...” errors during cumulative trophy rebuilds triggered by other add-ons (e.g. Daily Login Streaks) (thanks @Matt C.)
  • Add: Removed unused class from class extensions (inactive) and from code (unused)

Read the rest of this update entry...
 
@Matt C. I tested on my end; but never had any issues with rebuilds for Cumulative Trophy's in any capacity. I approached the update assuming it's this add-on causing the issue so adjusted something to return true instead of false; but given I can't reproduce the issue I can't confirm it will resolve the issue.

Please let me know.
 
@Matt C. I tested on my end; but never had any issues with rebuilds for Cumulative Trophy's in any capacity. I approached the update assuming it's this add-on causing the issue so adjusted something to return true instead of false; but given I can't reproduce the issue I can't confirm it will resolve the issue.

Please let me know.

Tried it and unfortunately didn't work. Here is the full error message.
ErrorException: Unable to rebuild cumulative trophy (pb_dailylogin_year_streak) because rebuild method (rebuildPbDailyloginYearStreak) cannot be found.
  • src/XF/Error.php:8
  • Generated by: Matthew
  • Aug 24, 2025 at 1:10 AM

Stack trace​


#0 src/XF.php(266): XF\Error->logError('Unable to rebui...', false)
#1 src/addons/M2N/TrophyEssentials/Repository/CumulativeTrophy.php(66): XF::logError('Unable to rebui...')
#2 src/addons/M2N/TrophyEssentials/Job/CumulativeTrophyRebuild.php(109): M2N\TrophyEssentials\Repository\CumulativeTrophy->rebuildCumulativeTrophy(Object(Wutime\TopContributors\Entity\CumulativeTrophy), Object(SV\DailyStatistics\XF\Entity\User))
#3 src/addons/M2N/TrophyEssentials/Job/CumulativeTrophyRebuild.php(42): M2N\TrophyEssentials\Job\CumulativeTrophyRebuild->rebuildById(21)
#4 src/XF/Job/Manager.php(275): M2N\TrophyEssentials\Job\CumulativeTrophyRebuild->run(8)
#5 src/XF/Job/Manager.php(205): XF\Job\Manager->runJobInternal(Array, 8)
#6 src/XF/Job/Manager.php(121): XF\Job\Manager->runJobEntry(Array, 8)
#7 src/XF/Admin/Controller/ToolsController.php(146): XF\Job\Manager->runByIds(Array, 8)
#8 src/XF/Mvc/Dispatcher.php(362): XF\Admin\Controller\ToolsController->actionRunJob(Object(XF\Mvc\ParameterBag))
#9 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Tools', 'RunJob', Object(XF\Mvc\RouteMatch), Object(SV\UserMentionsImprovements\XF\Admin\Controller\Tools), NULL)
#10 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\UserMentionsImprovements\XF\Admin\Controller\Tools), NULL)
#11 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#12 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#13 src/XF.php(806): XF\App->run()
#14 admin.php(15): XF::runApp('XF\\Admin\\App')
#15 {main}



Request state​



array(4) {
["url"] => string(24) "/admin.php?tools/run-job"
["referrer"] => string(116) "https://xyz.com/admin.php?tools/run-job&only_id=25680&_xfRedirect=/admin.php?tools/rebuild&success=1"
["_GET"] => array(1) {
["tools/run-job"] => string(0) ""
}
["_POST"] => array(3) {
["_xfRedirect"] => string(55) "https://xyz.com/admin.php?tools/rebuild&success=1"
["_xfToken"] => string(8) "********"
["only_ids"] => string(5) "25680"
}
}

I can probably provide you a copy of the add-on, if you need.
 
Hello,
Running the latest version on the latest XF. There are banned members (spammers) in the list. I excluded the Banned members usergroup and re-ran the cron twice, but they are still in the list.

Also is this the best route for the page? Would /top-contributors/ not do better for SEO?
 
Yeah, I had thought that u.user_state = 'valid' covered everything and wanted to avoid using too many parameters; but forgot that is_banned=0 is also necessary.

I'll add it and make/recommend the necessary INDEX adjustment.
 
Last edited:
Wutime updated Top Contributors of the Month with a new update entry:

v2.2.9

  • Fix: Add xf_user.is_banned to global query exclusion
It's recommended you add the following global index:

SQL:
CREATE INDEX idx_user_state_banned_group_id ON xf_user (user_state, is_banned, user_group_id, user_id);

You can delete the previous index on xf_user because the index above replaces it:

SQL:
DROP INDEX idx_user_state_group_id ON xf_user;

Read the rest of this update entry...
 
Suggestion - possible to make the user banners link to the Top Contributors page? People viewing certainly won't know what 'Runner-up #1' means. They will want to click it to find out.
Thanks
 
So I checked. Banned users are not included in the lists when they're created.

The issue is if they're banned after a cache is already created they are not removed in real-time from that cache.

I'll see about purging a banned user from the most recent cache on ban action.
 
Back
Top Bottom