return $res;
}
- protected function addRowInfo($prefix, $row) {
-
- $vals = array ();
-
- // ID
- if ( isset( $row-> { $prefix . '_id' } ) )
- $vals[$prefix . 'id'] = intval( $row-> { $prefix . '_id' } );
-
- // Title
- $title = ApiQueryBase :: addRowInfo_title($row, $prefix . '_namespace', $prefix . '_title');
- if ($title)
- ApiQueryBase :: addTitleInfo($vals, $title);
-
- switch ($prefix) {
-
- case 'page' :
- // page_is_redirect
- @ $tmp = $row->page_is_redirect;
- if ($tmp)
- $vals['redirect'] = '';
-
- break;
-
- case 'rc' :
- // PageId
- @ $tmp = $row->rc_cur_id;
- if (!is_null($tmp))
- $vals['pageid'] = intval($tmp);
-
- @ $tmp = $row->rc_this_oldid;
- if (!is_null($tmp))
- $vals['revid'] = intval($tmp);
-
- if ( isset( $row->rc_last_oldid ) )
- $vals['old_revid'] = intval( $row->rc_last_oldid );
-
- $title = ApiQueryBase :: addRowInfo_title($row, 'rc_moved_to_ns', 'rc_moved_to_title');
- if ($title) {
- if (!$title->userCanRead())
- return false;
- ApiQueryBase :: addTitleInfo($vals, $title, 'new_');
- }
-
- if ( isset( $row->rc_patrolled ) )
- $vals['patrolled'] = '';
-
- break;
-
- case 'log' :
- // PageId
- @ $tmp = $row->page_id;
- if (!is_null($tmp))
- $vals['pageid'] = intval($tmp);
-
- if ($row->log_params !== '') {
- $params = explode("\n", $row->log_params);
- if ($row->log_type == 'move' && isset ($params[0])) {
- $newTitle = Title :: newFromText($params[0]);
- if ($newTitle) {
- ApiQueryBase :: addTitleInfo($vals, $newTitle, 'new_');
- $params = null;
- }
- }
-
- if (!empty ($params)) {
- $this->getResult()->setIndexedTagName($params, 'param');
- $vals = array_merge($vals, $params);
- }
- }
-
- break;
-
- case 'rev' :
- // PageID
- @ $tmp = $row->rev_page;
- if (!is_null($tmp))
- $vals['pageid'] = intval($tmp);
+ protected static function addTitleInfo(&$arr, $title, $includeRestricted=false, $prefix='') {
+ if ($includeRestricted || $title->userCanRead()) {
+ $arr[$prefix . 'ns'] = intval($title->getNamespace());
+ $arr[$prefix . 'title'] = $title->getPrefixedText();
}
-
- // Type
- @ $tmp = $row-> { $prefix . '_type' };
- if (!is_null($tmp))
- $vals['type'] = $tmp;
-
- // Action
- @ $tmp = $row-> { $prefix . '_action' };
- if (!is_null($tmp))
- $vals['action'] = $tmp;
-
- // Old ID
- @ $tmp = $row-> { $prefix . '_text_id' };
- if (!is_null($tmp))
- $vals['oldid'] = intval($tmp);
-
- // User Name / Anon IP
- @ $tmp = $row-> { $prefix . '_user_text' };
- if (is_null($tmp))
- @ $tmp = $row->user_name;
- if (!is_null($tmp)) {
- $vals['user'] = $tmp;
- @ $tmp = !$row-> { $prefix . '_user' };
- if (!is_null($tmp) && $tmp)
- $vals['anon'] = '';
- }
-
- // Bot Edit
- @ $tmp = $row-> { $prefix . '_bot' };
- if (!is_null($tmp) && $tmp)
- $vals['bot'] = '';
-
- // New Edit
- @ $tmp = $row-> { $prefix . '_new' };
- if (is_null($tmp))
- @ $tmp = $row-> { $prefix . '_is_new' };
- if (!is_null($tmp) && $tmp)
- $vals['new'] = '';
-
- // Minor Edit
- @ $tmp = $row-> { $prefix . '_minor_edit' };
- if (is_null($tmp))
- @ $tmp = $row-> { $prefix . '_minor' };
- if (!is_null($tmp) && $tmp)
- $vals['minor'] = '';
-
- // Timestamp
- @ $tmp = $row-> { $prefix . '_timestamp' };
- if (!is_null($tmp))
- $vals['timestamp'] = wfTimestamp(TS_ISO_8601, $tmp);
-
- // Comment
- @ $tmp = $row-> { $prefix . '_comment' };
- if (!empty ($tmp)) // optimize bandwidth
- $vals['comment'] = $tmp;
-
- return $vals;
- }
-
- protected static function addTitleInfo(&$arr, $title, $prefix='') {
- $arr[$prefix . 'ns'] = $title->getNamespace();
- $arr[$prefix . 'title'] = $title->getPrefixedText();
if (!$title->userCanRead())
$arr[$prefix . 'inaccessible'] = "";
}
- private static function addRowInfo_title($row, $nsfld, $titlefld) {
- if ( isset( $row-> $nsfld ) ) {
- $ns = $row-> $nsfld;
- @ $title = $row-> $titlefld;
- if (!empty ($title))
- return Title :: makeTitle($ns, $title);
- }
- return false;
- }
-
/**
* Override this method to request extra fields from the pageSet
* using $this->getPageSet()->requestField('fieldName')