@@ -470,18 +470,29 @@ public static function get_untracked_moodleoverflows($userid, $courseid) {
470
470
*
471
471
* @return int|mixed
472
472
*/
473
- public static function moodleoverflow_count_unread_posts_moodleoverflow ($ cm, $ course ) {
473
+ public static function moodleoverflow_count_unread_posts_moodleoverflow ($ cm ) {
474
474
global $ DB , $ USER ;
475
475
476
- // Get the moodleoverflow ids.
477
- $ moodleoverflowid = $ cm ->instance ;
478
-
476
+ $ moodleoverflow = $ DB ->get_record_sql ("SELECT m.*, tm.id as hasdisabledtracking " .
477
+ "FROM {moodleoverflow} m " .
478
+ "LEFT JOIN {moodleoverflow_tracking} tm ON m.id = tm.moodleoverflowid AND tm.userid = :userid " .
479
+ "WHERE m.id = :moodleoverflowid " , ['userid ' => $ USER ->id , 'moodleoverflowid ' => $ cm ->instance ]);
480
+
481
+ // Return if tracking is off, or ((optional or forced, but forced disallowed by admin) and user has disabled tracking).
482
+ if ($ moodleoverflow ->trackingtype == MOODLEOVERFLOW_TRACKING_OFF || (
483
+ ($ moodleoverflow ->trackingtype == MOODLEOVERFLOW_TRACKING_OPTIONAL || (
484
+ $ moodleoverflow ->trackingtype == MOODLEOVERFLOW_TRACKING_FORCED &&
485
+ !get_config ('moodleoverflow ' , 'allowforcedreadtracking ' )
486
+ )
487
+ ) && $ moodleoverflow ->hasdisabledtracking )) {
488
+ return 0 ;
489
+ }
479
490
// Get the current timestamp and the cutoffdate.
480
- $ now = round (time (), -2 );
491
+ $ now = round (time (), -2 );
481
492
$ cutoffdate = $ now - (get_config ('moodleoverflow ' , 'oldpostdays ' ) * 24 * 60 * 60 );
482
493
483
494
// Define a sql-query.
484
- $ params = array ($ USER ->id , $ moodleoverflowid , $ cutoffdate );
495
+ $ params = array ($ USER ->id , $ cm -> instance , $ cutoffdate );
485
496
$ sql = "SELECT COUNT(p.id)
486
497
FROM {moodleoverflow_posts} p
487
498
JOIN {moodleoverflow_discussions} d ON p.discussion = d.id
0 commit comments