Merge branch 'Wikidata' of ssh://gerrit.wikimedia.org:29418/mediawiki/core into Wikidata
[lhc/web/wiklou.git] / includes / ChangesFeed.php
index c4c4a8a..2954920 100644 (file)
@@ -1,4 +1,24 @@
 <?php
+/**
+ * Feed for list of changes.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
 
 /**
  * Feed to Special:RecentChanges and Special:RecentChangesLiked
@@ -34,6 +54,11 @@ class ChangesFeed {
                        return false;
                }
 
+               if( !array_key_exists( $this->format, $wgFeedClasses ) ) {
+                       // falling back to atom
+                       $this->format = 'atom';
+               }
+
                $feedTitle = "$wgSitename  - {$title} [$wgLanguageCode]";
                return new $wgFeedClasses[$this->format](
                        $feedTitle, htmlspecialchars( $description ), $url );
@@ -46,13 +71,13 @@ class ChangesFeed {
         * @param $rows ResultWrapper object with rows in recentchanges table
         * @param $lastmod Integer: timestamp of the last item in the recentchanges table (only used for the cache key)
         * @param $opts FormOptions as in SpecialRecentChanges::getDefaultOptions()
-        * @return null or true
+        * @return null|bool True or null
         */
        public function execute( $feed, $rows, $lastmod, $opts ) {
                global $wgLang, $wgRenderHashAppend;
 
                if ( !FeedUtils::checkFeedOutput( $this->format ) ) {
-                       return;
+                       return null;
                }
 
                $optionsHash = md5( serialize( $opts->getAllValues() ) ) . $wgRenderHashAppend;
@@ -102,7 +127,7 @@ class ChangesFeed {
         * @param $lastmod Integer: timestamp of the last item in the recentchanges table
         * @param $timekey String: memcached key of the last modification
         * @param $key String: memcached key of the content
-        * @return feed's content on cache hit or false on cache miss
+        * @return string|bool feed's content on cache hit or false on cache miss
         */
        public function loadFromCache( $lastmod, $timekey, $key ) {
                global $wgFeedCacheTimeout, $wgOut, $messageMemc;