Merge "Don't check namespace in SpecialWantedtemplates"
[lhc/web/wiklou.git] / includes / api / ApiParamInfo.php
index bb661b2..2ab37ad 100644 (file)
@@ -216,7 +216,7 @@ class ApiParamInfo extends ApiBase {
                $this->formatHelpMessages( $ret, 'description', $module->getFinalDescription() );
 
                foreach ( $module->getHelpFlags() as $flag ) {
-                       $ret[$flag] = '';
+                       $ret[$flag] = true;
                }
 
                $ret['helpurls'] = (array)$module->getHelpUrls();
@@ -265,12 +265,10 @@ class ApiParamInfo extends ApiBase {
                                $this->formatHelpMessages( $item, 'description', $paramDesc[$name], true );
                        }
 
-                       if ( !empty( $settings[ApiBase::PARAM_REQUIRED] ) ) {
-                               $item['required'] = '';
-                       }
+                       $item['required'] = !empty( $settings[ApiBase::PARAM_REQUIRED] );
 
                        if ( !empty( $settings[ApiBase::PARAM_DEPRECATED] ) ) {
-                               $item['deprecated'] = '';
+                               $item['deprecated'] = true;
                        }
 
                        if ( $name === 'token' && $module->needsToken() ) {
@@ -293,22 +291,28 @@ class ApiParamInfo extends ApiBase {
                        if ( isset( $settings[ApiBase::PARAM_DFLT] ) ) {
                                switch ( $settings[ApiBase::PARAM_TYPE] ) {
                                        case 'boolean':
-                                               $item['default'] = ( $settings[ApiBase::PARAM_DFLT] ? 'true' : 'false' );
+                                               $item['default'] = (bool)$settings[ApiBase::PARAM_DFLT];
                                                break;
                                        case 'string':
+                                       case 'text':
+                                       case 'password':
                                                $item['default'] = strval( $settings[ApiBase::PARAM_DFLT] );
                                                break;
                                        case 'integer':
+                                       case 'limit':
                                                $item['default'] = intval( $settings[ApiBase::PARAM_DFLT] );
                                                break;
+                                       case 'timestamp':
+                                               $item['default'] = wfTimestamp( TS_ISO_8601, $settings[ApiBase::PARAM_DFLT] );
+                                               break;
                                        default:
                                                $item['default'] = $settings[ApiBase::PARAM_DFLT];
                                                break;
                                }
                        }
 
-                       if ( !empty( $settings[ApiBase::PARAM_ISMULTI] ) ) {
-                               $item['multi'] = '';
+                       $item['multi'] = !empty( $settings[ApiBase::PARAM_ISMULTI] );
+                       if ( $item['multi'] ) {
                                $item['limit'] = $this->getMain()->canApiHighLimits() ?
                                        ApiBase::LIMIT_SML2 :
                                        ApiBase::LIMIT_SML1;
@@ -317,14 +321,28 @@ class ApiParamInfo extends ApiBase {
                        }
 
                        if ( !empty( $settings[ApiBase::PARAM_ALLOW_DUPLICATES] ) ) {
-                               $item['allowsduplicates'] = '';
+                               $item['allowsduplicates'] = true;
                        }
 
                        if ( isset( $settings[ApiBase::PARAM_TYPE] ) ) {
                                if ( $settings[ApiBase::PARAM_TYPE] === 'submodule' ) {
-                                       $item['type'] = $module->getModuleManager()->getNames( $name );
-                                       sort( $item['type'] );
-                                       $item['submodules'] = '';
+                                       if ( isset( $settings[ApiBase::PARAM_SUBMODULE_MAP] ) ) {
+                                               ksort( $settings[ApiBase::PARAM_SUBMODULE_MAP] );
+                                               $item['type'] = array_keys( $settings[ApiBase::PARAM_SUBMODULE_MAP] );
+                                               $item['submodules'] = $settings[ApiBase::PARAM_SUBMODULE_MAP];
+                                       } else {
+                                               $item['type'] = $module->getModuleManager()->getNames( $name );
+                                               sort( $item['type'] );
+                                               $prefix = $module->isMain()
+                                                       ? '' : ( $module->getModulePath() . '+' );
+                                               $item['submodules'] = array();
+                                               foreach ( $item['type'] as $v ) {
+                                                       $item['submodules'][$v] = $prefix . $v;
+                                               }
+                                       }
+                                       if ( isset( $settings[ApiBase::PARAM_SUBMODULE_PARAM_PREFIX] ) ) {
+                                               $item['submoduleparamprefix'] = $settings[ApiBase::PARAM_SUBMODULE_PARAM_PREFIX];
+                                       }
                                } else {
                                        $item['type'] = $settings[ApiBase::PARAM_TYPE];
                                }
@@ -343,6 +361,9 @@ class ApiParamInfo extends ApiBase {
                        if ( isset( $settings[ApiBase::PARAM_MIN] ) ) {
                                $item['min'] = $settings[ApiBase::PARAM_MIN];
                        }
+                       if ( !empty( $settings[ApiBase::PARAM_RANGE_ENFORCE] ) ) {
+                               $item['enforcerange'] = true;
+                       }
 
                        if ( !empty( $settings[ApiBase::PARAM_HELP_MSG_INFO] ) ) {
                                $item['info'] = array();