From 9db190c7e736ec8d063187d4241b59feaf7dc2d1 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 22 Jun 2011 11:28:20 +0200 Subject: update to MediaWiki 1.17.0 --- includes/api/ApiDelete.php | 81 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 24 deletions(-) (limited to 'includes/api/ApiDelete.php') diff --git a/includes/api/ApiDelete.php b/includes/api/ApiDelete.php index c4550a96..fbf62391 100644 --- a/includes/api/ApiDelete.php +++ b/includes/api/ApiDelete.php @@ -1,9 +1,9 @@ .@home.nl * * This program is free software; you can redistribute it and/or modify @@ -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,17 +82,26 @@ class ApiDelete extends ApiBase { $this->dieUsageMsg( reset( $retval ) ); // We don't care about multiple errors, just report one of them } - if ( $params['watch'] || $wgUser->getOption( 'watchdeletion' ) ) { - $articleObj->doWatch(); + // Deprecated parameters + if ( $params['watch'] ) { + $watch = 'watch'; } elseif ( $params['unwatch'] ) { - $articleObj->doUnwatch(); + $watch = 'unwatch'; + } else { + $watch = $params['watchlist']; } + $this->setWatch( $watch, $titleObj, 'watchdeletion' ); } $r = array( 'title' => $titleObj->getPrefixedText(), 'reason' => $reason ); $this->getResult()->addValue( null, $this->getModuleName(), $r ); } + /** + * + * @param &$title Title + * @param $token String + */ private static function getPermissionsError( &$title, $token ) { global $wgUser; @@ -108,9 +117,9 @@ class ApiDelete extends ApiBase { /** * We have our own delete() function, since Article.php's implementation is split in two phases * - * @param Article $article - Article object to work on - * @param string $token - Delete token (same as edit token) - * @param string $reason - Reason for the deletion. Autogenerated if NULL + * @param $article Article object to work on + * @param $token String: delete token (same as edit token) + * @param $reason String: reason for the deletion. Autogenerated if NULL * @return Title::getUserPermissionsErrors()-like array */ public static function delete( &$article, $token, &$reason = null ) { @@ -137,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 @@ -149,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 ) ) { @@ -197,28 +215,43 @@ class ApiDelete extends ApiBase { ), 'token' => null, 'reason' => null, - 'watch' => false, - 'unwatch' => false, - 'oldimage' => null + 'watch' => array( + ApiBase::PARAM_DFLT => false, + ApiBase::PARAM_DEPRECATED => true, + ), + 'watchlist' => array( + ApiBase::PARAM_DFLT => 'preferences', + ApiBase::PARAM_TYPE => array( + 'watch', + 'unwatch', + 'preferences', + 'nochange' + ), + ), + 'unwatch' => array( + ApiBase::PARAM_DFLT => false, + ApiBase::PARAM_DEPRECATED => true, + ), + 'oldimage' => null, ); } public function getParamDescription() { + $p = $this->getModulePrefix(); return array( - 'title' => 'Title of the page you want to delete. Cannot be used together with pageid', - 'pageid' => 'Page ID of the page you want to delete. Cannot be used together with title', + 'title' => "Title of the page you want to delete. Cannot be used together with {$p}pageid", + 'pageid' => "Page ID of the page you want to delete. Cannot be used together with {$p}title", 'token' => 'A delete token previously retrieved through prop=info', - 'reason' => 'Reason for the deletion. If not set, an automatically generated reason will be used.', + 'reason' => 'Reason for the deletion. If not set, an automatically generated reason will be used', 'watch' => 'Add the page to your watchlist', + 'watchlist' => 'Unconditionally add or remove the page from your watchlist, use preferences or do not change watch', 'unwatch' => 'Remove the page from your watchlist', 'oldimage' => 'The name of the old image to delete as provided by iiprop=archivename' ); } public function getDescription() { - return array( - 'Delete a page.' - ); + return 'Delete a page'; } public function getPossibleErrors() { @@ -246,6 +279,6 @@ class ApiDelete extends ApiBase { } public function getVersion() { - return __CLASS__ . ': $Id: ApiDelete.php 74217 2010-10-03 15:53:07Z reedy $'; + return __CLASS__ . ': $Id: ApiDelete.php 77141 2010-11-23 10:04:38Z ialex $'; } } \ No newline at end of file -- cgit v1.2.3-54-g00ecf