X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fapi%2FApiParamInfo.php;h=2ab37ad140e93eaa2b6548ff124c07e3dad54e0c;hp=25069d9db7340727d74e2ac2a0b762491b6eb795;hb=59ebff658ce912c1b0e7ef8d8f9bfec5a4e17b39;hpb=39508404aa6e7d9e8ce55eeeab523bf31e8affb6 diff --git a/includes/api/ApiParamInfo.php b/includes/api/ApiParamInfo.php index 25069d9db7..2ab37ad140 100644 --- a/includes/api/ApiParamInfo.php +++ b/includes/api/ApiParamInfo.php @@ -291,14 +291,20 @@ 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; @@ -320,9 +326,23 @@ class ApiParamInfo extends ApiBase { if ( isset( $settings[ApiBase::PARAM_TYPE] ) ) { if ( $settings[ApiBase::PARAM_TYPE] === 'submodule' ) { - $item['type'] = $module->getModuleManager()->getNames( $name ); - sort( $item['type'] ); - $item['submodules'] = true; + 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]; } @@ -341,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();