extractRequestParams(); if(!$wgUser->isAllowed('purge')) $this->dieUsageMsg(array('cantpurge')); if(!isset($params['titles'])) $this->dieUsageMsg(array('missingparam', 'titles')); $result = array(); foreach($params['titles'] as $t) { $r = array(); $title = Title::newFromText($t); if(!$title instanceof Title) { $r['title'] = $t; $r['invalid'] = ''; $result[] = $r; continue; } ApiQueryBase::addTitleInfo($r, $title); if(!$title->exists()) { $r['missing'] = ''; $result[] = $r; continue; } $article = new Article($title); $article->doPurge(); // Directly purge and skip the UI part of purge(). $r['purged'] = ''; $result[] = $r; } $this->getResult()->setIndexedTagName($result, 'page'); $this->getResult()->addValue(null, $this->getModuleName(), $result); } public function getAllowedParams() { return array ( 'titles' => array( ApiBase :: PARAM_ISMULTI => true ) ); } public function getParamDescription() { return array ( 'titles' => 'A list of titles', ); } public function getDescription() { return array ( 'Purge the cache for the given titles.' ); } protected function getExamples() { return array( 'api.php?action=purge&titles=Main_Page|API' ); } public function getVersion() { return __CLASS__ . ': $Id: ApiPurge.php 41020 2008-09-19 00:21:03Z demon $'; } }