X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/mediawiki.git/blobdiff_plain/dc9cc5d707f5a612938cc9371614cc41c328fda2..19e297c21b10b1b8a3acad5e73fc71dcb35db44a:/includes/api/ApiWatch.php diff --git a/includes/api/ApiWatch.php b/includes/api/ApiWatch.php index 1b98fb86..81ded180 100644 --- a/includes/api/ApiWatch.php +++ b/includes/api/ApiWatch.php @@ -1,11 +1,10 @@ @gmail.com, + * Created on Jan 4, 2008 + * + * Copyright © 2008 Yuri Astrakhan @gmail.com, * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,13 +18,15 @@ * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html + * + * @file */ -if (!defined('MEDIAWIKI')) { +if ( !defined( 'MEDIAWIKI' ) ) { // Eclipse helper - will be ignored in production - require_once ('ApiBase.php'); + require_once( 'ApiBase.php' ); } /** @@ -35,67 +36,83 @@ if (!defined('MEDIAWIKI')) { */ class ApiWatch extends ApiBase { - public function __construct($main, $action) { - parent :: __construct($main, $action); + public function __construct( $main, $action ) { + parent::__construct( $main, $action ); } public function execute() { global $wgUser; - if(!$wgUser->isLoggedIn()) - $this->dieUsage('You must be logged-in to have a watchlist', 'notloggedin'); + if ( !$wgUser->isLoggedIn() ) { + $this->dieUsage( 'You must be logged-in to have a watchlist', 'notloggedin' ); + } + $params = $this->extractRequestParams(); - $title = Title::newFromText($params['title']); - if(!$title) - $this->dieUsageMsg(array('invalidtitle', $params['title'])); - $article = new Article($title); - $res = array('title' => $title->getPrefixedText()); - if($params['unwatch']) - { + $title = Title::newFromText( $params['title'] ); + + if ( !$title ) { + $this->dieUsageMsg( array( 'invalidtitle', $params['title'] ) ); + } + + $article = new Article( $title ); + $res = array( 'title' => $title->getPrefixedText() ); + + if ( $params['unwatch'] ) { $res['unwatched'] = ''; + $res['message'] = wfMsgExt( 'removedwatchtext', array( 'parse' ), $title->getPrefixedText() ); $success = $article->doUnwatch(); - } - else - { + } else { $res['watched'] = ''; + $res['message'] = wfMsgExt( 'addedwatchtext', array( 'parse' ), $title->getPrefixedText() ); $success = $article->doWatch(); } - if(!$success) - $this->dieUsageMsg(array('hookaborted')); - $this->getResult()->addValue(null, $this->getModuleName(), $res); + if ( !$success ) { + $this->dieUsageMsg( array( 'hookaborted' ) ); + } + $this->getResult()->addValue( null, $this->getModuleName(), $res ); } public function isWriteMode() { return true; - } + } public function getAllowedParams() { - return array ( - 'title' => null, + return array( + 'title' => array( + ApiBase::PARAM_TYPE => 'string', + ApiBase::PARAM_REQUIRED => true + ), + 'unwatch' => false, ); } public function getParamDescription() { - return array ( + return array( 'title' => 'The page to (un)watch', 'unwatch' => 'If set the page will be unwatched rather than watched', ); } public function getDescription() { - return array ( - 'Add or remove a page from/to the current user\'s watchlist' - ); + return 'Add or remove a page from/to the current user\'s watchlist'; + } + + public function getPossibleErrors() { + return array_merge( parent::getPossibleErrors(), array( + array( 'code' => 'notloggedin', 'info' => 'You must be logged-in to have a watchlist' ), + array( 'invalidtitle', 'title' ), + array( 'hookaborted' ), + ) ); } protected function getExamples() { return array( 'api.php?action=watch&title=Main_Page', - 'api.php?action=watch&title=Main_Page&unwatch', + 'api.php?action=watch&title=Main_Page&unwatch=', ); } public function getVersion() { - return __CLASS__ . ': $Id: ApiWatch.php 48091 2009-03-06 13:49:44Z catrope $'; + return __CLASS__ . ': $Id$'; } }