X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiParamInfo.php;h=bb661b213986c43f5b08abefbdd8b1c9a60bb6e7;hb=4fa02402289e9ba08369f2c3f9cb78eb0080027a;hp=b1c092e0b7a8d849a657793b31e19dad9846c324;hpb=cad7a1125dc910b8ee19c8f675099ed65c0a6018;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiParamInfo.php b/includes/api/ApiParamInfo.php index b1c092e0b7..bb661b2139 100644 --- a/includes/api/ApiParamInfo.php +++ b/includes/api/ApiParamInfo.php @@ -37,8 +37,6 @@ class ApiParamInfo extends ApiBase { } public function execute() { - global $wgContLang; - // Get parameters $params = $this->extractRequestParams(); @@ -107,7 +105,7 @@ class ApiParamInfo extends ApiBase { $result->addValue( array( $this->getModuleName() ), 'helpformat', $this->helpFormat ); foreach ( $res as $key => $stuff ) { - $result->setIndexedTagName( $res[$key], 'module' ); + ApiResult::setIndexedTagName( $res[$key], 'module' ); } if ( $params['mainmodule'] ) { @@ -131,8 +129,9 @@ class ApiParamInfo extends ApiBase { * @param array $res Result array * @param string $key Result key * @param Message[] $msgs + * @param bool $joinLists */ - protected function formatHelpMessages( array &$res, $key, array $msgs ) { + protected function formatHelpMessages( array &$res, $key, array $msgs, $joinLists = false ) { switch ( $this->helpFormat ) { case 'none': break; @@ -143,6 +142,9 @@ class ApiParamInfo extends ApiBase { $ret[] = $m->setContext( $this->context )->text(); } $res[$key] = join( "\n\n", $ret ); + if ( $joinLists ) { + $res[$key] = preg_replace( '!^(([*#:;])[^\n]*)\n\n(?=\2)!m', "$1\n", $res[$key] ); + } break; case 'html': @@ -150,18 +152,26 @@ class ApiParamInfo extends ApiBase { foreach ( $msgs as $m ) { $ret[] = $m->setContext( $this->context )->parseAsBlock(); } - $res[$key] = join( "\n", $ret ); + $ret = join( "\n", $ret ); + if ( $joinLists ) { + $ret = preg_replace( '!\s*\s*<\1>\s*!', "\n", $ret ); + } + $res[$key] = Parser::stripOuterParagraph( $ret ); break; case 'raw': $res[$key] = array(); foreach ( $msgs as $m ) { - $res[$key][] = array( + $a = array( 'key' => $m->getKey(), 'params' => $m->getParams(), ); + if ( $m instanceof ApiHelpParamValueMessage ) { + $a['forvalue'] = $m->getParamValue(); + } + $res[$key][] = $a; } - $this->getResult()->setIndexedTagName( $res[$key], 'msg' ); + ApiResult::setIndexedTagName( $res[$key], 'msg' ); break; } } @@ -185,6 +195,24 @@ class ApiParamInfo extends ApiBase { } $ret['prefix'] = $module->getModulePrefix(); + $sourceInfo = $module->getModuleSourceInfo(); + if ( $sourceInfo ) { + $ret['source'] = $sourceInfo['name']; + if ( isset( $sourceInfo['namemsg'] ) ) { + $ret['sourcename'] = $this->context->msg( $sourceInfo['namemsg'] )->text(); + } else { + $ret['sourcename'] = $ret['source']; + } + + $link = SpecialPage::getTitleFor( 'Version', 'License/' . $sourceInfo['name'] )->getFullUrl(); + if ( isset( $sourceInfo['license-name'] ) ) { + $ret['licensetag'] = $sourceInfo['license-name']; + $ret['licenselink'] = (string)$link; + } elseif ( SpecialVersion::getExtLicenseFileName( dirname( $sourceInfo['path'] ) ) ) { + $ret['licenselink'] = (string)$link; + } + } + $this->formatHelpMessages( $ret, 'description', $module->getFinalDescription() ); foreach ( $module->getHelpFlags() as $flag ) { @@ -195,7 +223,7 @@ class ApiParamInfo extends ApiBase { if ( isset( $ret['helpurls'][0] ) && $ret['helpurls'][0] === false ) { $ret['helpurls'] = array(); } - $result->setIndexedTagName( $ret['helpurls'], 'helpurl' ); + ApiResult::setIndexedTagName( $ret['helpurls'], 'helpurl' ); if ( $this->helpFormat !== 'none' ) { $ret['examples'] = array(); @@ -214,12 +242,12 @@ class ApiParamInfo extends ApiBase { if ( is_array( $item['description'] ) ) { $item['description'] = $item['description'][0]; } else { - $result->setSubelements( $item, 'description' ); + ApiResult::setSubelementsList( $item, 'description' ); } } $ret['examples'][] = $item; } - $result->setIndexedTagName( $ret['examples'], 'example' ); + ApiResult::setIndexedTagName( $ret['examples'], 'example' ); } $ret['parameters'] = array(); @@ -234,7 +262,7 @@ class ApiParamInfo extends ApiBase { 'name' => $name ); if ( isset( $paramDesc[$name] ) ) { - $this->formatHelpMessages( $item, 'description', $paramDesc[$name] ); + $this->formatHelpMessages( $item, 'description', $paramDesc[$name], true ); } if ( !empty( $settings[ApiBase::PARAM_REQUIRED] ) ) { @@ -303,7 +331,7 @@ class ApiParamInfo extends ApiBase { if ( is_array( $item['type'] ) ) { // To prevent sparse arrays from being serialized to JSON as objects $item['type'] = array_values( $item['type'] ); - $result->setIndexedTagName( $item['type'], 't' ); + ApiResult::setIndexedTagName( $item['type'], 't' ); } } if ( isset( $settings[ApiBase::PARAM_MAX] ) ) { @@ -325,7 +353,7 @@ class ApiParamInfo extends ApiBase { ); if ( count( $i ) ) { $info['values'] = $i; - $result->setIndexedTagName( $info['values'], 'v' ); + ApiResult::setIndexedTagName( $info['values'], 'v' ); } $this->formatHelpMessages( $info, 'text', array( $this->context->msg( "apihelp-{$path}-paraminfo-{$tag}" ) @@ -333,15 +361,15 @@ class ApiParamInfo extends ApiBase { ->params( $this->context->getLanguage()->commaList( $i ) ) ->params( $module->getModulePrefix() ) ) ); - $result->setSubelements( $info, 'text' ); + ApiResult::setSubelementsList( $info, 'text' ); $item['info'][] = $info; } - $result->setIndexedTagName( $item['info'], 'i' ); + ApiResult::setIndexedTagName( $item['info'], 'i' ); } $ret['parameters'][] = $item; } - $result->setIndexedTagName( $ret['parameters'], 'param' ); + ApiResult::setIndexedTagName( $ret['parameters'], 'param' ); return $ret; }