API: Go back to using the good old str_replace() hacks rather than Title methods in ApiQueryBase::titleToKey() and keyToTitle(). Error handling was awkward and the Title methods over-normalize the input, causing bug 15275 (apprefix ignores spaces at the end)
This commit is contained in:
parent
af5cd9d05f
commit
511ae2aca2
2 changed files with 3 additions and 19 deletions
|
|
@ -170,6 +170,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
|
|||
etc. (AKA lists) instead of arrays with pageIDs as keys (AKA hash tables)
|
||||
for consistency with other list modules.
|
||||
* Added action=watch
|
||||
* (bug 15275) apprefix and related parameters ignore spaces at the end
|
||||
|
||||
=== Languages updated in 1.14 ===
|
||||
|
||||
|
|
|
|||
|
|
@ -324,15 +324,7 @@ abstract class ApiQueryBase extends ApiBase {
|
|||
* @return string Page title with underscores
|
||||
*/
|
||||
public function titleToKey($title) {
|
||||
$t = Title::newFromText($title);
|
||||
if(!$t)
|
||||
{
|
||||
# Don't throw an error if we got an empty string
|
||||
if($title == '')
|
||||
return '';
|
||||
$this->dieUsageMsg(array('invalidtitle', $title));
|
||||
}
|
||||
return $t->getDbKey();
|
||||
return str_replace(' ', '_', $title);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -341,16 +333,7 @@ abstract class ApiQueryBase extends ApiBase {
|
|||
* @return string Page title with spaces
|
||||
*/
|
||||
public function keyToTitle($key) {
|
||||
$t = Title::newFromDbKey($key);
|
||||
# This really shouldn't happen but we gotta check anyway
|
||||
if(!$t)
|
||||
{
|
||||
# Don't throw an error if we got an empty string
|
||||
if($key == '')
|
||||
return '';
|
||||
$this->dieUsageMsg(array('invalidtitle', $key));
|
||||
}
|
||||
return $t->getPrefixedText();
|
||||
return str_replace('_', ' ', $key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue