Merge "Expand the protocol for proto-relative links when printing"
[lhc/web/wiklou.git] / includes / api / ApiQueryPageProps.php
index 1731c79..b68a385 100644 (file)
  * @file
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       // Eclipse helper - will be ignored in production
-       require_once( 'ApiQueryBase.php' );
-}
-
 /**
  * A query module to show basic page information.
  *
@@ -54,7 +49,7 @@ class ApiQueryPageProps extends ApiQueryBase {
 
                $this->addTables( 'page_props' );
                $this->addFields( array( 'pp_page', 'pp_propname', 'pp_value' ) );
-               $this->addWhereFld( 'pp_page',  array_keys( $pages ) );
+               $this->addWhereFld( 'pp_page', array_keys( $pages ) );
 
                if ( $this->params['continue'] ) {
                        $this->addWhere( 'pp_page >=' . intval( $this->params['continue'] ) );
@@ -65,7 +60,10 @@ class ApiQueryPageProps extends ApiQueryBase {
                }
 
                # Force a sort order to ensure that properties are grouped by page
-               $this->addOption( 'ORDER BY', 'pp_page' );
+               # But only if pp_page is not constant in the WHERE clause.
+               if ( count( $pages ) > 1 ) {
+                       $this->addOption( 'ORDER BY', 'pp_page' );
+               }
 
                $res = $this->select( __METHOD__ );
                $currentPage = 0; # Id of the page currently processed
@@ -106,9 +104,9 @@ class ApiQueryPageProps extends ApiQueryBase {
         * Add page properties to an ApiResult, adding a continue
         * parameter if it doesn't fit.
         *
-        * @param $result ApiResult
-        * @param $page int
-        * @param $props array
+        * @param ApiResult $result
+        * @param int $page
+        * @param array $props
         * @return bool True if it fits in the result
         */
        private function addPageProps( $result, $page, $props ) {
@@ -117,6 +115,7 @@ class ApiQueryPageProps extends ApiQueryBase {
                if ( !$fit ) {
                        $this->setContinueEnumParameter( 'continue', $page );
                }
+
                return $fit;
        }
 
@@ -127,19 +126,22 @@ class ApiQueryPageProps extends ApiQueryBase {
        public function getAllowedParams() {
                return array(
                        'continue' => null,
-                       'prop' => null,
+                       'prop' => array(
+                               ApiBase::PARAM_ISMULTI => true,
+                       ),
                );
        }
 
        public function getParamDescription() {
                return array(
                        'continue' => 'When more results are available, use this to continue',
-                       'prop' => 'Page prop to look on the page for. Useful for checking whether a certain page uses a certain page prop.'
+                       'prop' => 'Only list these props. Useful for checking whether a ' .
+                               'certain page uses a certain page prop',
                );
        }
 
        public function getDescription() {
-               return 'Get various properties defined in the page content';
+               return 'Get various properties defined in the page content.';
        }
 
        public function getExamples() {
@@ -149,10 +151,6 @@ class ApiQueryPageProps extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'http://www.mediawiki.org/wiki/API:Properties#pageprops_.2F_pp';
-       }
-
-       public function getVersion() {
-               return __CLASS__ . ': $Id$';
+               return 'https://www.mediawiki.org/wiki/API:Properties#pageprops_.2F_pp';
        }
 }