* Fixed preg_replace /e usage in Sanitizer and UserMailer. This was already against policy.
* Removed the __get()-based lazy initialisation of $this->xpath in PPNode_DOM. This caused a notice in HipHop, and is also inefficient due to the need for dynamic properties.
* Fixed the assertion in PPNode_DOM::splitHeading(), flagged by Inez Korczynski. It was obviously completely broken, converting a non-existent property to boolean, and it only appeared to work in Zend by accident.
* Made WikiError::isError() compatible with Status objects
* Added Status::getMessage() for backward compatibility
Extensions using WikiError::isError() to detect a failure of UserMailer::send() and realted methods should still work like before
Since UserMailer's $wgEnotifImpersonal setting was introduced in
r21897 it has ostensibly been sending out mails like these:
The OpenStreetMap Wiki page Servers has been changed on 10:20, 5 August 2010
by TomH, see http://wiki.openstreetmap.org/wiki/Servers for the current
revision.
See http://wiki.openstreetmap.org/w/index.php?title=Servers&oldid=507861&diff=prev
That link takes you to a page with the diff between:
Revision as of 2010-07-26T15:22:38 -> Revision as of 2010-07-29T13:03:51
Instead it should take you to:
Revision as of 2010-07-29T13:03:51 -> Revision as of 2010-08-05T10:20:50
So that you get a diff *to* the 10:20 revision mentioned in the
original E-Mail. Switch diff=prev to diff=next to fix this. Now it'll
emit a link like:
http://wiki.openstreetmap.org/w/index.php?title=Servers&oldid=507861&diff=next
Reported-by: Grant Slater <openstreetmap@firefishy.com>
exist under supported versions of PHP
** assert() is always defined for DifferenceEngine()
** mail() is always defined for UserMailer()
** is_executable() is defined for Windows from PHP 5.0.0 on
Previously, a failure to open the debug log file for writing would end up getting reported as a failure of mail delivery, even though we were successful.
It'll now fail silently (as it should) and won't interfere with the actual mail() call's error reporting.
* Move up the UPDATE query on wl_notificationtimestamp up to before scheduling the EnotifyNotifyJob
* Move up the SELECT query fetching the users to be notified to before the UPDATE, and use its result for a more efficient UPDATE
* Pass actuallyNotifyOnPageChange() and the EnotifyNotifyJob an array of user IDs
* Add UserArray::newFromIDs()
As Tim notes, the weird callback setup in $wgHooks isn't really something we want to replicate or ever rely on ever again, as PHP's native callback syntax already handles things fine and is more consistent (and used extensively in the rest of MediaWiki).
May be other remaining issues with the refactor on top of bugs already discovered, but if it's going to be refactored to use callbacks it should be done using regular callbacks.
A database query syntax error has occurred.
The last attempted database query was:
"SELECT gu_id, lu_wiki, gu_salt, gu_password,gu_auth_token, gu_locked,gu_hidden,gu_registration,gu_email,gu_email_authenticated FROM `parsertest_globaluser` LEFT OUTER JOIN `parsertest_localuser` ON gu_name=lu_name AND lu_wiki='test2wiki-parsertest_' WHERE gu_name='127.0.0.1'"
from within function "Database::safeQuery".
MySQL returned error "1146: Table 'centralauth.parsertest_globaluser' doesn't exist (127.0.0.1)"
* Whitespaces fixes