/**
* This query action adds a list of a specified user's contributions to the output.
*
- * @addtogroup API
+ * @ingroup API
*/
class ApiQueryContributions extends ApiQueryBase {
$this->selectNamedDB('contributions', DB_SLAVE, 'contributions');
$db = $this->getDB();
-
if(isset($this->params['userprefix']))
{
$this->prefixMode = true;
//We're after the revision table, and the corresponding page row for
//anything we retrieve.
- list ($tbl_page, $tbl_revision) = $this->getDB()->tableNamesN('page', 'revision');
- $this->addTables("$tbl_revision LEFT OUTER JOIN $tbl_page ON page_id=rev_page");
+ $this->addTables(array('revision', 'page'));
+ $this->addWhere('page_id=rev_page');
$this->addWhereFld('rev_deleted', 0);
// We only want pages by the specified users.
));
$this->addFieldsIf('rev_page', $this->fld_ids);
- $this->addFieldsIf('rev_id', $this->fld_ids);
+ $this->addFieldsIf('rev_id', $this->fld_ids || $this->fld_flags);
+ $this->addFieldsIf('page_latest', $this->fld_flags);
// $this->addFieldsIf('rev_text_id', $this->fld_ids); // Should this field be exposed?
$this->addFieldsIf('rev_comment', $this->fld_comment);
$this->addFieldsIf('rev_minor_edit', $this->fld_flags);
$vals['new'] = '';
if ($row->rev_minor_edit)
$vals['minor'] = '';
+ if ($row->page_latest == $row->rev_id)
+ $vals['top'] = '';
}
if ($this->fld_comment && !empty ($row->rev_comment))