private $mAllPages; // [ns][dbkey] => page_id or 0 when missing
private $mGoodTitles, $mMissingTitles, $mRedirectTitles, $mNormalizedTitles;
+ private $mRequestedFields;
+
public function __construct($query) {
parent :: __construct($query, __CLASS__);
$this->mMissingTitles = array ();
$this->mRedirectTitles = array ();
$this->mNormalizedTitles = array ();
+
+ $this->mRequestedFields = array ();
+ }
+
+ public function requestField($fieldName) {
+ $this->mRequestedFields[$fieldName] = null;
}
/**
* Get the list of revision IDs (requested with revids= parameter)
*/
public function getRevisionIDs() {
- $this->dieUsage(__FUNCTION__ . ' is not implemented', 'notimplemented');
+ $this->dieUsage(__METHOD__ . ' is not implemented', 'notimplemented');
}
/**
*/
private function populateTitles($titles, $redirects) {
+ // Ensure we get minimum required fields
$pageFlds = array (
- 'page_id',
- 'page_namespace',
- 'page_title'
+ 'page_id' => null,
+ 'page_namespace' => null,
+ 'page_title' => null
);
- if ($redirects) {
- $pageFlds[] = 'page_is_redirect';
- }
+
+ // only store non-default fields
+ $this->mRequestedFields = array_diff_key($this->mRequestedFields, $pageFlds);
+
+ if ($redirects)
+ $pageFlds['page_is_redirect'] = null;
+
+ $pageFlds = array_keys(array_merge($this->mRequestedFields, $pageFlds));
// Get validated and normalized title objects
$linkBatch = $this->processTitlesStrArray($titles);
// Get data about $linkBatch from `page` table
//
$this->profileDBIn();
- $res = $db->select('page', $pageFlds, $set, __CLASS__ . '::' . __FUNCTION__);
+ $res = $db->select('page', $pageFlds, $set, __METHOD__);
$this->profileDBOut();
while ($row = $db->fetchObject($res)) {
'pl_title'
), array (
'pl_from' => array_keys($redirectIds
- )), __CLASS__ . '::' . __FUNCTION__);
+ )), __METHOD__);
$this->profileDBOut();
while ($row = $db->fetchObject($res)) {
}
private function populatePageIDs($pageids) {
- $this->dieUsage(__FUNCTION__ . ' is not implemented', 'notimplemented');
+ $this->dieUsage(__METHOD__ . ' is not implemented', 'notimplemented');
}
public function execute() {
protected function getAllowedParams() {
return array (
'titles' => array (
- GN_ENUM_ISMULTI => true
+ ApiBase::PARAM_ISMULTI => true
),
'pageids' => array (
- GN_ENUM_TYPE => 'integer',
- GN_ENUM_ISMULTI => true
+ ApiBase::PARAM_TYPE => 'integer',
+ ApiBase::PARAM_ISMULTI => true
),
'revids' => array (
- GN_ENUM_TYPE => 'integer',
- GN_ENUM_ISMULTI => true
+ ApiBase::PARAM_TYPE => 'integer',
+ ApiBase::PARAM_ISMULTI => true
),
'redirects' => false
);