* @file
*/
+use MediaWiki\MediaWikiServices;
+
/**
* API module that functions as a shortcut to the wikitext preprocessor. Expands
* any templates in a provided string, and returns the result of this expansion
if ( $params['prop'] === null ) {
$this->addDeprecation(
- 'apiwarn-deprecation-expandtemplates-prop', 'action=expandtemplates&!prop'
+ [ 'apiwarn-deprecation-missingparam', 'prop' ], 'action=expandtemplates&!prop'
);
$prop = [];
} else {
// Get title and revision ID for parser
$revid = $params['revid'];
if ( $revid !== null ) {
- $rev = Revision::newFromId( $revid );
+ $rev = MediaWikiServices::getInstance()->getRevisionStore()->getRevisionById( $revid );
if ( !$rev ) {
$this->dieWithError( [ 'apierror-nosuchrevid', $revid ] );
}
$pTitleObj = $titleObj;
- $titleObj = $rev->getTitle();
+ $titleObj = Title::newFromLinkTarget( $rev->getPageAsLinkTarget() );
if ( $titleProvided ) {
if ( !$titleObj->equals( $pTitleObj ) ) {
$this->addWarning( [ 'apierror-revwrongpage', $rev->getId(),
$result = $this->getResult();
// Parse text
- global $wgParser;
$options = ParserOptions::newFromContext( $this->getContext() );
if ( $params['includecomments'] ) {
$retval = [];
+ $parser = MediaWikiServices::getInstance()->getParser();
if ( isset( $prop['parsetree'] ) || $params['generatexml'] ) {
- $wgParser->startExternalParse( $titleObj, $options, Parser::OT_PREPROCESS );
- $dom = $wgParser->preprocessToDom( $params['text'] );
+ $parser->startExternalParse( $titleObj, $options, Parser::OT_PREPROCESS );
+ $dom = $parser->preprocessToDom( $params['text'] );
if ( is_callable( [ $dom, 'saveXML' ] ) ) {
$xml = $dom->saveXML();
} else {
// if they didn't want any output except (probably) the parse tree,
// then don't bother actually fully expanding it
if ( $prop || $params['prop'] === null ) {
- $wgParser->startExternalParse( $titleObj, $options, Parser::OT_PREPROCESS );
- $frame = $wgParser->getPreprocessor()->newFrame();
- $wikitext = $wgParser->preprocess( $params['text'], $titleObj, $options, $revid, $frame );
+ $parser->startExternalParse( $titleObj, $options, Parser::OT_PREPROCESS );
+ $frame = $parser->getPreprocessor()->newFrame();
+ $wikitext = $parser->preprocess( $params['text'], $titleObj, $options, $revid, $frame );
if ( $params['prop'] === null ) {
// the old way
ApiResult::setContentValue( $retval, 'wikitext', $wikitext );
} else {
- $p_output = $wgParser->getOutput();
+ $p_output = $parser->getOutput();
if ( isset( $prop['categories'] ) ) {
$categories = $p_output->getCategories();
if ( $categories ) {
}
if ( isset( $prop['modules'] ) ) {
$retval['modules'] = array_values( array_unique( $p_output->getModules() ) );
- $retval['modulescripts'] = array_values( array_unique( $p_output->getModuleScripts() ) );
+ // Deprecated since 1.32 (T188689)
+ $retval['modulescripts'] = [];
$retval['modulestyles'] = array_values( array_unique( $p_output->getModuleStyles() ) );
}
if ( isset( $prop['jsconfigvars'] ) ) {