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) { if (!$title->userCanRead()) { return false; } $vals['ns'] = $title->getNamespace(); $vals['title'] = $title->getPrefixedText(); } 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; } $vals['new_ns'] = $title->getNamespace(); $vals['new_title'] = $title->getPrefixedText(); } 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) { $vals['new_ns'] = $newTitle->getNamespace(); $vals['new_title'] = $newTitle->getPrefixedText(); $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); } } // 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; }