X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/87219ebd28426c6d21cb545233ee52f5f7af7dfd..18a6620945d02687fbcfc4c27355d952fd748b41:/includes/api/ApiParamInfo.php diff --git a/includes/api/ApiParamInfo.php b/includes/api/ApiParamInfo.php index 8fe2cad2..a2c0bd11 100644 --- a/includes/api/ApiParamInfo.php +++ b/includes/api/ApiParamInfo.php @@ -1,11 +1,10 @@ .@home.nl + * Created on Dec 01, 2007 + * + * Copyright © 2008 Roan Kattouw .@home.nl * * 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 @@ -19,13 +18,15 @@ * * 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., - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html + * + * @file */ if ( !defined( 'MEDIAWIKI' ) ) { // Eclipse helper - will be ignored in production - require_once ( "ApiBase.php" ); + require_once( "ApiBase.php" ); } /** @@ -34,7 +35,7 @@ if ( !defined( 'MEDIAWIKI' ) ) { class ApiParamInfo extends ApiBase { public function __construct( $main, $action ) { - parent :: __construct( $main, $action ); + parent::__construct( $main, $action ); } public function execute() { @@ -43,14 +44,11 @@ class ApiParamInfo extends ApiBase { $result = $this->getResult(); $queryObj = new ApiQuery( $this->getMain(), 'query' ); $r = array(); - if ( is_array( $params['modules'] ) ) - { + if ( is_array( $params['modules'] ) ) { $modArr = $this->getMain()->getModules(); $r['modules'] = array(); - foreach ( $params['modules'] as $m ) - { - if ( !isset( $modArr[$m] ) ) - { + foreach ( $params['modules'] as $m ) { + if ( !isset( $modArr[$m] ) ) { $r['modules'][] = array( 'name' => $m, 'missing' => '' ); continue; } @@ -61,14 +59,11 @@ class ApiParamInfo extends ApiBase { } $result->setIndexedTagName( $r['modules'], 'module' ); } - if ( is_array( $params['querymodules'] ) ) - { + if ( is_array( $params['querymodules'] ) ) { $qmodArr = $queryObj->getModules(); $r['querymodules'] = array(); - foreach ( $params['querymodules'] as $qm ) - { - if ( !isset( $qmodArr[$qm] ) ) - { + foreach ( $params['querymodules'] as $qm ) { + if ( !isset( $qmodArr[$qm] ) ) { $r['querymodules'][] = array( 'name' => $qm, 'missing' => '' ); continue; } @@ -79,60 +74,64 @@ class ApiParamInfo extends ApiBase { } $result->setIndexedTagName( $r['querymodules'], 'module' ); } - if ( $params['mainmodule'] ) + if ( $params['mainmodule'] ) { $r['mainmodule'] = $this->getClassInfo( $this->getMain() ); - if ( $params['pagesetmodule'] ) - { + } + if ( $params['pagesetmodule'] ) { $pageSet = new ApiPageSet( $queryObj ); $r['pagesetmodule'] = $this->getClassInfo( $pageSet ); } $result->addValue( null, $this->getModuleName(), $r ); } - function getClassInfo( $obj ) - { + function getClassInfo( $obj ) { $result = $this->getResult(); $retval['classname'] = get_class( $obj ); $retval['description'] = implode( "\n", (array)$obj->getDescription() ); + $retval['examples'] = implode( "\n", (array)$obj->getExamples() ); $retval['version'] = implode( "\n", (array)$obj->getVersion() ); $retval['prefix'] = $obj->getModulePrefix(); - if ( $obj->isReadMode() ) + if ( $obj->isReadMode() ) { $retval['readrights'] = ''; - if ( $obj->isWriteMode() ) + } + if ( $obj->isWriteMode() ) { $retval['writerights'] = ''; - if ( $obj->mustBePosted() ) + } + if ( $obj->mustBePosted() ) { $retval['mustbeposted'] = ''; - if ( $obj instanceof ApiQueryGeneratorBase ) + } + if ( $obj instanceof ApiQueryGeneratorBase ) { $retval['generator'] = ''; + } $allowedParams = $obj->getFinalParams(); - if ( !is_array( $allowedParams ) ) + if ( !is_array( $allowedParams ) ) { return $retval; - + } + $retval['parameters'] = array(); $paramDesc = $obj->getFinalParamDescription(); - foreach ( $allowedParams as $n => $p ) - { + foreach ( $allowedParams as $n => $p ) { $a = array( 'name' => $n ); - if ( isset( $paramDesc[$n] ) ) + if ( isset( $paramDesc[$n] ) ) { $a['description'] = implode( "\n", (array)$paramDesc[$n] ); - if ( isset( $p[ApiBase::PARAM_DEPRECATED] ) && $p[ApiBase::PARAM_DEPRECATED] ) + } + if ( isset( $p[ApiBase::PARAM_DEPRECATED] ) && $p[ApiBase::PARAM_DEPRECATED] ) { $a['deprecated'] = ''; - if ( !is_array( $p ) ) - { - if ( is_bool( $p ) ) - { + } + if ( isset( $p[ApiBase::PARAM_REQUIRED] ) && $p[ApiBase::PARAM_REQUIRED] ) { + $a['required'] = ''; + } + + if ( !is_array( $p ) ) { + if ( is_bool( $p ) ) { $a['type'] = 'bool'; $a['default'] = ( $p ? 'true' : 'false' ); - } - else if ( is_string( $p ) || is_null( $p ) ) - { + } elseif ( is_string( $p ) || is_null( $p ) ) { $a['type'] = 'string'; $a['default'] = strval( $p ); - } - else if ( is_int( $p ) ) - { + } elseif ( is_int( $p ) ) { $a['type'] = 'integer'; $a['default'] = intval( $p ); } @@ -140,42 +139,45 @@ class ApiParamInfo extends ApiBase { continue; } - if ( isset( $p[ApiBase::PARAM_DFLT] ) ) + if ( isset( $p[ApiBase::PARAM_DFLT] ) ) { $a['default'] = $p[ApiBase::PARAM_DFLT]; - if ( isset( $p[ApiBase::PARAM_ISMULTI] ) ) - if ( $p[ApiBase::PARAM_ISMULTI] ) - { - $a['multi'] = ''; - $a['limit'] = $this->getMain()->canApiHighLimits() ? - ApiBase::LIMIT_SML2 : - ApiBase::LIMIT_SML1; - } + } + if ( isset( $p[ApiBase::PARAM_ISMULTI] ) && $p[ApiBase::PARAM_ISMULTI] ) { + $a['multi'] = ''; + $a['limit'] = $this->getMain()->canApiHighLimits() ? + ApiBase::LIMIT_SML2 : + ApiBase::LIMIT_SML1; + } - if ( isset( $p[ApiBase::PARAM_ALLOW_DUPLICATES] ) ) - if ( $p[ApiBase::PARAM_ALLOW_DUPLICATES] ) - $a['allowsduplicates'] = ''; + if ( isset( $p[ApiBase::PARAM_ALLOW_DUPLICATES] ) && $p[ApiBase::PARAM_ALLOW_DUPLICATES] ) { + $a['allowsduplicates'] = ''; + } - if ( isset( $p[ApiBase::PARAM_TYPE] ) ) - { + if ( isset( $p[ApiBase::PARAM_TYPE] ) ) { $a['type'] = $p[ApiBase::PARAM_TYPE]; - if ( is_array( $a['type'] ) ) + if ( is_array( $a['type'] ) ) { + $a['type'] = array_values( $a['type'] ); // to prevent sparse arrays from being serialized to JSON as objects $result->setIndexedTagName( $a['type'], 't' ); + } } - if ( isset( $p[ApiBase::PARAM_MAX] ) ) + if ( isset( $p[ApiBase::PARAM_MAX] ) ) { $a['max'] = $p[ApiBase::PARAM_MAX]; - if ( isset( $p[ApiBase::PARAM_MAX2] ) ) + } + if ( isset( $p[ApiBase::PARAM_MAX2] ) ) { $a['highmax'] = $p[ApiBase::PARAM_MAX2]; - if ( isset( $p[ApiBase::PARAM_MIN] ) ) + } + if ( isset( $p[ApiBase::PARAM_MIN] ) ) { $a['min'] = $p[ApiBase::PARAM_MIN]; + } $retval['parameters'][] = $a; } $result->setIndexedTagName( $retval['parameters'], 'param' ); - + // Errors $retval['errors'] = $this->parseErrors( $obj->getPossibleErrors() ); - + $result->setIndexedTagName( $retval['errors'], 'error' ); - + return $retval; } @@ -184,12 +186,12 @@ class ApiParamInfo extends ApiBase { } public function getAllowedParams() { - return array ( + return array( 'modules' => array( - ApiBase :: PARAM_ISMULTI => true + ApiBase::PARAM_ISMULTI => true ), 'querymodules' => array( - ApiBase :: PARAM_ISMULTI => true + ApiBase::PARAM_ISMULTI => true ), 'mainmodule' => false, 'pagesetmodule' => false, @@ -197,7 +199,7 @@ class ApiParamInfo extends ApiBase { } public function getParamDescription() { - return array ( + return array( 'modules' => 'List of module names (value of the action= parameter)', 'querymodules' => 'List of query module names (value of prop=, meta= or list= parameter)', 'mainmodule' => 'Get information about the main (top-level) module as well', @@ -206,16 +208,16 @@ class ApiParamInfo extends ApiBase { } public function getDescription() { - return 'Obtain information about certain API parameters'; + return 'Obtain information about certain API parameters and errors'; } protected function getExamples() { - return array ( + return array( 'api.php?action=paraminfo&modules=parse&querymodules=allpages|siteinfo' ); } public function getVersion() { - return __CLASS__ . ': $Id: ApiParamInfo.php 62336 2010-02-11 22:22:20Z reedy $'; + return __CLASS__ . ': $Id: ApiParamInfo.php 87170 2011-04-30 16:57:22Z catrope $'; } }