* Fix regression from r37270: prop=categories paging was broken in generator mode.
* Fix drlimit=max, which was broken since r31384
* Use titleToKey() and keyToTitle() on title parts of the continue parameters in prop={links,templatelinks,categories,images}
* Use addQuotes() rather than strencode() in those same modules
* Don't trim message names in ammessages, it's stupid and undocumented
* Add $wgAPI{Meta,Prop,List}Modules to DefaultSettings.php explicitly
* Extension modules may override the core modules.
*/
$wgAPIModules = array();
+$wgAPIMetaModules = array();
+$wgAPIPropModules = array();
+$wgAPIListModules = array();
/**
* Maximum amount of rows to scan in a DB query in the API
//Get all requested messages
$messages = array();
foreach( $messages_target as $message ) {
- $message = trim( $message ); //Message list can be formatted like "msg1 | msg2 | msg3", so let's trim() it
$messages[$message] = wfMsg( $message );
}
$this->dieUsage("Invalid continue param. You should pass the " .
"original value returned by the previous query", "_badcontinue");
$clfrom = intval($cont[0]);
- $clto = $this->getDb()->strencode($cont[1]);
+ $clto = $this->getDb()->addQuotes($this->titleToKey($cont[1]));
$this->addWhere("cl_from > $clfrom OR ".
"(cl_from = $clfrom AND ".
"cl_to >= '$clto')");
if (++$count > $params['limit']) {
// We've reached the one extra which shows that
// there are additional pages to be had. Stop here...
- $this->setContinueEnumParameter('continue', "{$row->cl_from}|{$row->cl_to}");
+ $this->setContinueEnumParameter('continue', $row->cl_from .
+ '|' . $this->keyToTitle($row->cl_to));
break;
}
if ($lastId != $row->cl_from) {
if (++$count > $params['limit']) {
// We've reached the one extra which shows that
// there are additional pages to be had. Stop here...
- $this->setContinueEnumParameter('continue', "{$row->il_from}|{$row->il_to}");
+ $this->setContinueEnumParameter('continue', $row->cl_from .
+ '|' . $this->keyToTitle($row->cl_to));
break;
}
$this->addWhere($where);
}
- $this->addOption('LIMIT', $params['limit'] + 1);
+ $this->addOption('LIMIT', $limit + 1);
$this->addWhereRange('ar_timestamp', $params['dir'], $params['start'], $params['end']);
$res = $this->select(__METHOD__);
$pages = array();
// First populate the $pages array
while($row = $db->fetchObject($res))
{
- if($count++ == $params['limit'])
+ if(++$count > $limit)
{
// We've had enough
$this->setContinueEnumParameter('start', wfTimestamp(TS_ISO_8601, $row->ar_timestamp));
$this->dieUsage("Invalid continue param. You should pass the " .
"original value returned by the previous query", "_badcontinue");
$ilfrom = intval($cont[0]);
- $ilto = $this->getDb()->strencode($cont[1]);
+ $ilto = $this->getDb()->addQuotes($this->titleToKey($cont[1]));
$this->addWhere("il_from > $ilfrom OR ".
"(il_from = $ilfrom AND ".
"il_to >= '$ilto')");
if (++$count > $params['limit']) {
// We've reached the one extra which shows that
// there are additional pages to be had. Stop here...
- $this->setContinueEnumParameter('continue', "{$row->il_from}|{$row->il_to}");
+ $this->setContinueEnumParameter('continue', $row->il_from .
+ '|' . $this->keyToTitle($row->il_to));
break;
}
if ($lastId != $row->il_from) {
if (++$count > $params['limit']) {
// We've reached the one extra which shows that
// there are additional pages to be had. Stop here...
- $this->setContinueEnumParameter('continue', "{$row->il_from}|{$row->il_to}");
+ $this->setContinueEnumParameter('continue', $row->il_from .
+ '|' . $this->keyToTitle($row->il_to));
break;
}
$titles[] = Title :: makeTitle(NS_IMAGE, $row->il_to);
"original value returned by the previous query", "_badcontinue");
$plfrom = intval($cont[0]);
$plns = intval($cont[1]);
- $pltitle = $this->getDb()->strencode($cont[2]);
+ $pltitle = $this->getDb()->addQuotes($this->titleToKey($cont[2]));
$this->addWhere("{$this->prefix}_from > $plfrom OR ".
"({$this->prefix}_from = $plfrom AND ".
"({$this->prefix}_namespace > $plns OR ".
// We've reached the one extra which shows that
// there are additional pages to be had. Stop here...
$this->setContinueEnumParameter('continue',
- "{$row->pl_from}|{$row->pl_namespace}|{$row->pl_title}");
+ "{$row->pl_from}|{$row->pl_namespace}|" .
+ $this->keyToTitle($row->pl_title));
break;
}
if ($lastId != $row->pl_from) {
// We've reached the one extra which shows that
// there are additional pages to be had. Stop here...
$this->setContinueEnumParameter('continue',
- "{$row->pl_from}|{$row->pl_namespace}|{$row->pl_title}");
+ "{$row->pl_from}|{$row->pl_namespace}|" .
+ $this->keyToTitle($row->pl_title));
break;
}
$titles[] = Title :: makeTitle($row->pl_namespace, $row->pl_title);