Merge "Add MockMessageLocalizer"
[lhc/web/wiklou.git] / includes / api / ApiFeedContributions.php
index 9c3945e..61a9035 100644 (file)
@@ -1,9 +1,5 @@
 <?php
 /**
- *
- *
- * Created on June 06, 2011
- *
  * Copyright © 2011 Sam Reed
  *
  * This program is free software; you can redistribute it and/or modify
@@ -43,16 +39,16 @@ class ApiFeedContributions extends ApiBase {
 
                $config = $this->getConfig();
                if ( !$config->get( 'Feed' ) ) {
-                       $this->dieUsage( 'Syndication feeds are not available', 'feed-unavailable' );
+                       $this->dieWithError( 'feed-unavailable' );
                }
 
                $feedClasses = $config->get( 'FeedClasses' );
                if ( !isset( $feedClasses[$params['feedformat']] ) ) {
-                       $this->dieUsage( 'Invalid subscription feed type', 'feed-invalid' );
+                       $this->dieWithError( 'feed-invalid' );
                }
 
                if ( $params['showsizediff'] && $this->getConfig()->get( 'MiserMode' ) ) {
-                       $this->dieUsage( 'Size difference is disabled in Miser Mode', 'sizediffdisabled' );
+                       $this->dieWithError( 'apierror-sizediffdisabled' );
                }
 
                $msg = wfMessage( 'Contributions' )->inContentLanguage()->text();
@@ -70,24 +66,30 @@ class ApiFeedContributions extends ApiBase {
                        $feedUrl
                );
 
-               $pager = new ContribsPager( $this->getContext(), array(
+               // Convert year/month parameters to end parameter
+               $params['start'] = '';
+               $params['end'] = '';
+               $params = ContribsPager::processDateFilter( $params );
+
+               $pager = new ContribsPager( $this->getContext(), [
                        'target' => $target,
                        'namespace' => $params['namespace'],
-                       'year' => $params['year'],
-                       'month' => $params['month'],
+                       'start' => $params['start'],
+                       'end' => $params['end'],
                        'tagFilter' => $params['tagfilter'],
                        'deletedOnly' => $params['deletedonly'],
                        'topOnly' => $params['toponly'],
                        'newOnly' => $params['newonly'],
+                       'hideMinor' => $params['hideminor'],
                        'showSizeDiff' => $params['showsizediff'],
-               ) );
+               ] );
 
                $feedLimit = $this->getConfig()->get( 'FeedLimit' );
                if ( $pager->getLimit() > $feedLimit ) {
                        $pager->setLimit( $feedLimit );
                }
 
-               $feedItems = array();
+               $feedItems = [];
                if ( $pager->getNumRows() > 0 ) {
                        $count = 0;
                        $limit = $pager->getLimit();
@@ -113,7 +115,7 @@ class ApiFeedContributions extends ApiBase {
                $feedItem = null;
                $hookResult = Hooks::run(
                        'ApiFeedContributions::feedItem',
-                       array( $row, $this->getContext(), &$feedItem )
+                       [ $row, $this->getContext(), &$feedItem ]
                );
                // Hook returned a valid feed item
                if ( $feedItem instanceof FeedItem ) {
@@ -133,7 +135,7 @@ class ApiFeedContributions extends ApiBase {
                        return new FeedItem(
                                $title->getPrefixedText(),
                                $this->feedItemDesc( $revision ),
-                               $title->getFullURL( array( 'diff' => $revision->getId() ) ),
+                               $title->getFullURL( [ 'diff' => $revision->getId() ] ),
                                $date,
                                $this->feedItemAuthor( $revision ),
                                $comments
@@ -173,7 +175,7 @@ class ApiFeedContributions extends ApiBase {
 
                        return '<p>' . htmlspecialchars( $revision->getUserText() ) . $msg .
                                htmlspecialchars( FeedItem::stripComment( $revision->getComment() ) ) .
-                               "</p>\n<hr />\n<div>" . $html . "</div>";
+                               "</p>\n<hr />\n<div>" . $html . '</div>';
                }
 
                return '';
@@ -182,36 +184,37 @@ class ApiFeedContributions extends ApiBase {
        public function getAllowedParams() {
                $feedFormatNames = array_keys( $this->getConfig()->get( 'FeedClasses' ) );
 
-               $ret = array(
-                       'feedformat' => array(
+               $ret = [
+                       'feedformat' => [
                                ApiBase::PARAM_DFLT => 'rss',
                                ApiBase::PARAM_TYPE => $feedFormatNames
-                       ),
-                       'user' => array(
+                       ],
+                       'user' => [
                                ApiBase::PARAM_TYPE => 'user',
                                ApiBase::PARAM_REQUIRED => true,
-                       ),
-                       'namespace' => array(
+                       ],
+                       'namespace' => [
                                ApiBase::PARAM_TYPE => 'namespace'
-                       ),
-                       'year' => array(
+                       ],
+                       'year' => [
                                ApiBase::PARAM_TYPE => 'integer'
-                       ),
-                       'month' => array(
+                       ],
+                       'month' => [
                                ApiBase::PARAM_TYPE => 'integer'
-                       ),
-                       'tagfilter' => array(
+                       ],
+                       'tagfilter' => [
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => array_values( ChangeTags::listDefinedTags() ),
                                ApiBase::PARAM_DFLT => '',
-                       ),
+                       ],
                        'deletedonly' => false,
                        'toponly' => false,
                        'newonly' => false,
-                       'showsizediff' => array(
+                       'hideminor' => false,
+                       'showsizediff' => [
                                ApiBase::PARAM_DFLT => false,
-                       ),
-               );
+                       ],
+               ];
 
                if ( $this->getConfig()->get( 'MiserMode' ) ) {
                        $ret['showsizediff'][ApiBase::PARAM_HELP_MSG] = 'api-help-param-disabled-in-miser-mode';
@@ -221,9 +224,9 @@ class ApiFeedContributions extends ApiBase {
        }
 
        protected function getExamplesMessages() {
-               return array(
+               return [
                        'action=feedcontributions&user=Example'
                                => 'apihelp-feedcontributions-example-simple',
-               );
+               ];
        }
 }