Merge "Add hook to allow lazy loading of import sources"
[lhc/web/wiklou.git] / includes / api / ApiQueryBase.php
index 1d4cff9..c66e21b 100644 (file)
@@ -123,6 +123,7 @@ abstract class ApiQueryBase extends ApiBase {
         */
        public function selectNamedDB( $name, $db, $groups ) {
                $this->mDb = $this->getQuery()->getNamedDB( $name, $db, $groups );
+               return $this->mDb;
        }
 
        /**
@@ -456,7 +457,7 @@ abstract class ApiQueryBase extends ApiBase {
         */
        protected function addPageSubItems( $pageId, $data ) {
                $result = $this->getResult();
-               $result->setIndexedTagName( $data, $this->getModulePrefix() );
+               ApiResult::setIndexedTagName( $data, $this->getModulePrefix() );
 
                return $result->addValue( array( 'query', 'pages', intval( $pageId ) ),
                        $this->getModuleName(),
@@ -481,7 +482,7 @@ abstract class ApiQueryBase extends ApiBase {
                if ( !$fit ) {
                        return false;
                }
-               $result->setIndexedTagName_internal( array( 'query', 'pages', $pageId,
+               $result->addIndexedTagName( array( 'query', 'pages', $pageId,
                        $this->getModuleName() ), $elemname );
 
                return true;
@@ -493,7 +494,7 @@ abstract class ApiQueryBase extends ApiBase {
         * @param string|array $paramValue Parameter value
         */
        protected function setContinueEnumParameter( $paramName, $paramValue ) {
-               $this->getResult()->setContinueParam( $this, $paramName, $paramValue );
+               $this->getContinuationManager()->addContinueParam( $this, $paramName, $paramValue );
        }
 
        /**
@@ -503,7 +504,7 @@ abstract class ApiQueryBase extends ApiBase {
         * capitalization settings.
         *
         * @param string $titlePart Title part
-        * @param int $defaultNamespace Namespace of the title
+        * @param int $namespace Namespace of the title
         * @return string DBkey (no namespace prefix)
         */
        public function titlePartToKey( $titlePart, $namespace = NS_MAIN ) {
@@ -524,6 +525,24 @@ abstract class ApiQueryBase extends ApiBase {
                return substr( $t->getDbKey(), 0, -1 );
        }
 
+       /**
+        * Convert an input title or title prefix into a namespace constant and dbkey.
+        *
+        * @since 1.26
+        * @param string $titlePart Title part
+        * @param int $defaultNamespace Default namespace if none is given
+        * @return array (int, string) Namespace number and DBkey
+        */
+       public function prefixedTitlePartToKey( $titlePart, $defaultNamespace = NS_MAIN ) {
+               $t = Title::newFromText( $titlePart . 'x', $defaultNamespace );
+               if ( !$t || $t->hasFragment() || $t->isExternal() ) {
+                       // Invalid title (e.g. bad chars) or contained a '#'.
+                       $this->dieUsageMsg( array( 'invalidtitle', $titlePart ) );
+               }
+
+               return array( $t->getNamespace(), substr( $t->getDbKey(), 0, -1 ) );
+       }
+
        /**
         * Gets the personalised direction parameter description
         *
@@ -710,7 +729,7 @@ abstract class ApiQueryGeneratorBase extends ApiQueryBase {
         */
        protected function setContinueEnumParameter( $paramName, $paramValue ) {
                if ( $this->mGeneratorPageSet !== null ) {
-                       $this->getResult()->setGeneratorContinueParam( $this, $paramName, $paramValue );
+                       $this->getContinuationManager()->addGeneratorContinueParam( $this, $paramName, $paramValue );
                } else {
                        parent::setContinueEnumParameter( $paramName, $paramValue );
                }