*
* Created on Aug 29, 2014
*
- * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.org>
+ * Copyright © 2014 Wikimedia Foundation and contributors
*
* 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
*/
use HtmlFormatter\HtmlFormatter;
+use MediaWiki\MediaWikiServices;
/**
* Class to output help for an API module
* @param IContextSource $context
* @param ApiBase[]|ApiBase $modules
* @param array $options Formatting options (described above)
- * @return string
*/
public static function getHelp( IContextSource $context, $modules, array $options ) {
global $wgContLang;
}
$out->setPageTitle( $context->msg( 'api-help-title' ) );
- $cache = ObjectCache::getMainWANInstance();
+ $cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
$cacheKey = null;
if ( count( $modules ) == 1 && $modules[0] instanceof ApiMain &&
$options['recursivesubmodules'] && $context->getLanguage() === $wgContLang
$cacheHelpTimeout = $context->getConfig()->get( 'APICacheHelpTimeout' );
if ( $cacheHelpTimeout > 0 ) {
// Get help text from cache if present
- $cacheKey = wfMemcKey( 'apihelp', $modules[0]->getModulePath(),
+ $cacheKey = $cache->makeKey( 'apihelp', $modules[0]->getModulePath(),
(int)!empty( $options['toc'] ),
str_replace( ' ', '_', SpecialVersion::getVersion( 'nodb' ) ) );
$cached = $cache->get( $cacheKey );
case 'namespace':
$namespaces = MWNamespace::getValidNamespaces();
+ if ( isset( $settings[ApiBase::PARAM_EXTRA_NAMESPACES] ) &&
+ is_array( $settings[ApiBase::PARAM_EXTRA_NAMESPACES] )
+ ) {
+ $namespaces = array_merge( $namespaces, $settings[ApiBase::PARAM_EXTRA_NAMESPACES] );
+ }
+ sort( $namespaces );
$count = count( $namespaces );
$info[] = $context->msg( 'api-help-param-list' )
->params( $multi ? 2 : 1 )
if ( $extra ) {
$info[] = implode( ' ', $extra );
}
+
+ $allowAll = isset( $settings[ApiBase::PARAM_ALL] )
+ ? $settings[ApiBase::PARAM_ALL]
+ : false;
+ if ( $allowAll || $settings[ApiBase::PARAM_TYPE] === 'namespace' ) {
+ if ( $settings[ApiBase::PARAM_TYPE] === 'namespace' ) {
+ $allSpecifier = ApiBase::ALL_DEFAULT_STRING;
+ } else {
+ $allSpecifier = ( is_string( $allowAll ) ? $allowAll : ApiBase::ALL_DEFAULT_STRING );
+ }
+ $info[] = $context->msg( 'api-help-param-multi-all' )
+ ->params( $allSpecifier )
+ ->parse();
+ }
}
}
public function getHelpUrls() {
return [
- 'https://www.mediawiki.org/wiki/API:Main_page',
- 'https://www.mediawiki.org/wiki/API:FAQ',
- 'https://www.mediawiki.org/wiki/API:Quick_start_guide',
+ 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page',
+ 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:FAQ',
+ 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Quick_start_guide',
];
}
}