X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiDelete.php;h=5d28174d4cb419f7d0c2e23ac024ce7a4c5e7b14;hb=d6c5ef7a5dec68105b03ff700faf27d98d5e804e;hp=8737eff6832e2512007f3eda8fa9e6563833b1bd;hpb=50b88a5b1b62829b211224cb128e014c7a1fa7d7;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiDelete.php b/includes/api/ApiDelete.php index 8737eff683..5d28174d4c 100644 --- a/includes/api/ApiDelete.php +++ b/includes/api/ApiDelete.php @@ -1,10 +1,10 @@ .@home.nl + * Copyright © 2007 Roan Kattouw .@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 @@ -18,8 +18,10 @@ * * 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' ) ) { @@ -28,7 +30,7 @@ if ( !defined( 'MEDIAWIKI' ) ) { } /** - * API module that facilitates deleting pages. The API eqivalent of action=delete. + * API module that facilitates deleting pages. The API equivalent of action=delete. * Requires API write mode to be enabled. * * @ingroup API @@ -47,8 +49,6 @@ class ApiDelete extends ApiBase { * result object. */ public function execute() { - global $wgUser; - $params = $this->extractRequestParams(); $this->requireOnlyOneParameter( $params, 'title', 'pageid' ); @@ -82,7 +82,6 @@ class ApiDelete extends ApiBase { $this->dieUsageMsg( reset( $retval ) ); // We don't care about multiple errors, just report one of them } - $watch = 'nochange'; // Deprecated parameters if ( $params['watch'] ) { $watch = 'watch'; @@ -98,6 +97,11 @@ class ApiDelete extends ApiBase { $this->getResult()->addValue( null, $this->getModuleName(), $r ); } + /** + * + * @param &$title Title + * @param $token String + */ private static function getPermissionsError( &$title, $token ) { global $wgUser; @@ -142,8 +146,8 @@ class ApiDelete extends ApiBase { } $error = ''; - if ( !wfRunHooks( 'ArticleDelete', array( &$article, &$wgUser, &$reason, $error ) ) ) { - $this->dieUsageMsg( array( 'hookaborted', $error ) ); + if ( !wfRunHooks( 'ArticleDelete', array( &$article, &$wgUser, &$reason, &$error ) ) ) { + return array( array( 'hookaborted', $error ) ); } // Luckily, Article.php provides a reusable delete function that does the hard work for us @@ -154,6 +158,15 @@ class ApiDelete extends ApiBase { return array( array( 'cannotdelete', $article->mTitle->getPrefixedText() ) ); } + /** + * @static + * @param $token + * @param $title + * @param $oldimage + * @param $reason + * @param $suppress bool + * @return \type|array|Title + */ public static function deleteFile( $token, &$title, $oldimage, &$reason = null, $suppress = false ) { $errors = self::getPermissionsError( $title, $token ); if ( count( $errors ) ) { @@ -215,8 +228,11 @@ class ApiDelete extends ApiBase { 'nochange' ), ), - 'unwatch' => false, - 'oldimage' => null + 'unwatch' => array( + ApiBase::PARAM_DFLT => false, + ApiBase::PARAM_DEPRECATED => true, + ), + 'oldimage' => null, ); } @@ -240,6 +256,8 @@ class ApiDelete extends ApiBase { public function getPossibleErrors() { return array_merge( parent::getPossibleErrors(), array( + array( 'code' => 'missingparam', 'info' => 'One of the parameters title, pageid is required' ), + array( 'code' => 'invalidparammix', 'info' => 'The parameters title, pageid can not be used together' ), array( 'invalidtitle', 'title' ), array( 'nosuchpageid', 'pageid' ), array( 'notanarticle' ), @@ -247,6 +265,10 @@ class ApiDelete extends ApiBase { ) ); } + public function needsToken() { + return true; + } + public function getTokenSalt() { return ''; }