Last modified: 2010-05-15 15:37:46 UTC
In SpecialWatchlist, clearAllNotifcations() has no arguments, so it always returns immediately. The solution below seems to work: if( $wgRequest->getVal( 'reset' ) == 'all' ) { $wgUser->clearAllNotifications($uid); // Menne, added $uid }
(In reply to comment #0) > In SpecialWatchlist, clearAllNotifcations() has no arguments, so it always > returns immediately. > The solution below seems to work: > > if( $wgRequest->getVal( 'reset' ) == 'all' ) { > $wgUser->clearAllNotifications($uid); // Menne, added $uid > } I confirm Dieter's observation. Please can someone of the core developers change this in CVS HEAD ? Thanks; I do not have CVS access rights. I checked today's CVS HEAD, it works fine. Tom aka Wikinaut - for Enotif
I don't really recommend my fix from a design point of view, it only was a quick fix. Passing the UID to a class that "knows" the user is no clean design. Better change the definition of clearAllNotification to taking no parameters and extracting the uid from itself. This is probably what Brion had in mind when he (not Tom) remove the parameter, but it was not followed up by changes in the user class.
(In reply to comment #2) > I don't really recommend my fix from a design point of view, it only was a quick fix. Passing > the UID to a class that "knows" the user is no clean design. Better change the definition of > clearAllNotification to taking no parameters and extracting the uid from itself. > > This is probably what Brion had in mind when he (not Tom) remove the parameter, but it was not > followed up by changes in the user class. Yes, this should also be adapted accordingly. Tom - for ENotif