[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * API for MediaWiki 1.14+ 4 * 5 * Created on Sep 2, 2008 6 * 7 * Copyright © 2008 Soxred93 [email protected], 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License along 20 * with this program; if not, write to the Free Software Foundation, Inc., 21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 22 * http://www.gnu.org/copyleft/gpl.html 23 * 24 * @file 25 */ 26 27 /** 28 * Allows user to patrol pages 29 * @ingroup API 30 */ 31 class ApiPatrol extends ApiBase { 32 33 /** 34 * Patrols the article or provides the reason the patrol failed. 35 */ 36 public function execute() { 37 $params = $this->extractRequestParams(); 38 $this->requireOnlyOneParameter( $params, 'rcid', 'revid' ); 39 40 if ( isset( $params['rcid'] ) ) { 41 $rc = RecentChange::newFromID( $params['rcid'] ); 42 if ( !$rc ) { 43 $this->dieUsageMsg( array( 'nosuchrcid', $params['rcid'] ) ); 44 } 45 } else { 46 $rev = Revision::newFromId( $params['revid'] ); 47 if ( !$rev ) { 48 $this->dieUsageMsg( array( 'nosuchrevid', $params['revid'] ) ); 49 } 50 $rc = $rev->getRecentChange(); 51 if ( !$rc ) { 52 $this->dieUsage( 53 'The revision ' . $params['revid'] . " can't be patrolled as it's too old", 54 'notpatrollable' 55 ); 56 } 57 } 58 59 $retval = $rc->doMarkPatrolled( $this->getUser() ); 60 61 if ( $retval ) { 62 $this->dieUsageMsg( reset( $retval ) ); 63 } 64 65 $result = array( 'rcid' => intval( $rc->getAttribute( 'rc_id' ) ) ); 66 ApiQueryBase::addTitleInfo( $result, $rc->getTitle() ); 67 $this->getResult()->addValue( null, $this->getModuleName(), $result ); 68 } 69 70 public function mustBePosted() { 71 return true; 72 } 73 74 public function isWriteMode() { 75 return true; 76 } 77 78 public function getAllowedParams() { 79 return array( 80 'rcid' => array( 81 ApiBase::PARAM_TYPE => 'integer' 82 ), 83 'revid' => array( 84 ApiBase::PARAM_TYPE => 'integer' 85 ), 86 ); 87 } 88 89 public function getParamDescription() { 90 return array( 91 'rcid' => 'Recentchanges ID to patrol', 92 'revid' => 'Revision ID to patrol', 93 ); 94 } 95 96 public function getDescription() { 97 return 'Patrol a page or revision.'; 98 } 99 100 public function needsToken() { 101 return 'patrol'; 102 } 103 104 public function getExamples() { 105 return array( 106 'api.php?action=patrol&token=123ABC&rcid=230672766', 107 'api.php?action=patrol&token=123ABC&revid=230672766' 108 ); 109 } 110 111 public function getHelpUrls() { 112 return 'https://www.mediawiki.org/wiki/API:Patrol'; 113 } 114 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |