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:
Roan Kattouw 2008-08-25 05:41:53 +00:00
parent af5cd9d05f
commit 511ae2aca2
2 changed files with 3 additions and 19 deletions

View file

@ -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 ===

View file

@ -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);
}
/**