]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/api/ApiQueryAllmessages.php
MediaWiki 1.15.5
[autoinstallsdev/mediawiki.git] / includes / api / ApiQueryAllmessages.php
index 066833796af285d2d5fb55e2e3e27a3a33944abd..c615daf4b42420e83eed940e7f0e1aa3f9d74f0b 100644 (file)
@@ -74,8 +74,13 @@ class ApiQueryAllmessages extends ApiQueryBase {
 
                //Get all requested messages
                $messages = array();
+               $skip = !is_null($params['from']);
                foreach( $messages_target as $message ) {
-                       $messages[$message] = wfMsg( $message );
+                       // Skip all messages up to $params['from']
+                       if($skip && $message === $params['from'])
+                               $skip = false;
+                       if(!$skip)
+                               $messages[$message] = wfMsg( $message );
                }
 
                //Print the result
@@ -89,10 +94,24 @@ class ApiQueryAllmessages extends ApiQueryBase {
                        } else {
                                $result->setContent( $message, $value );
                        }
-                       $messages_out[] = $message;
+                       $fit = $result->addValue(array('query', $this->getModuleName()), null, $message);
+                       if(!$fit)
+                       {
+                               $this->setContinueEnumParameter('from', $name);
+                               break;
+                       }
+               }
+               $result->setIndexedTagName_internal(array('query', $this->getModuleName()), 'message');
+       }
+
+       public function getCacheMode( $params ) {
+               if ( is_null( $params['lang'] ) ) {
+                       // Language not specified, will be fetched from preferences
+                       return 'anon-public-user-private';
+               } else {
+                       // OK to cache
+                       return 'public';
                }
-               $result->setIndexedTagName( $messages_out, 'message' );
-               $result->addValue( 'query', $this->getModuleName(), $messages_out );
        }
 
        public function getAllowedParams() {
@@ -102,6 +121,7 @@ class ApiQueryAllmessages extends ApiQueryBase {
                        ),
                        'filter' => array(),
                        'lang' => null,
+                       'from' => null,
                );
        }
 
@@ -110,6 +130,7 @@ class ApiQueryAllmessages extends ApiQueryBase {
                        'messages' => 'Which messages to output. "*" means all messages',
                        'filter' => 'Return only messages that contain this string',
                        'lang' => 'Return messages in this language',
+                       'from' => 'Return messages starting at this message',
                );
        }
 
@@ -125,6 +146,6 @@ class ApiQueryAllmessages extends ApiQueryBase {
        }
 
        public function getVersion() {
-               return __CLASS__ . ': $Id: ApiQueryAllmessages.php 37504 2008-07-10 14:28:09Z catrope $';
+               return __CLASS__ . ': $Id: ApiQueryAllmessages.php 69986 2010-07-27 03:57:39Z tstarling $';
        }
 }