$prop = array_flip($params['prop']);
$revid = false;
- global $wgParser, $wgUser;
+ // The parser needs $wgTitle to be set, apparently the
+ // $title parameter in Parser::parse isn't enough *sigh*
+ global $wgParser, $wgUser, $wgTitle;
$popts = new ParserOptions();
$popts->setTidy(true);
$popts->enableLimitReport();
$this->dieUsage("You don't have permission to view deleted revisions", 'permissiondenied');
$text = $rev->getText( Revision::FOR_THIS_USER );
$titleObj = $rev->getTitle();
+ $wgTitle = $titleObj;
$p_result = $wgParser->parse($text, $titleObj, $popts);
}
else
$p_result = $wgParser->parse($articleObj->getContent(), $titleObj, $popts);
global $wgUseParserCache;
if($wgUseParserCache)
- $pcache->save($p_result, $articleObj, $wgUser);
+ $pcache->save($p_result, $articleObj, $popts);
}
}
}
$titleObj = Title::newFromText($title);
if(!$titleObj)
$titleObj = Title::newFromText("API");
+ $wgTitle = $titleObj;
if($params['pst'] || $params['onlypst'])
$text = $wgParser->preSaveTransform($text, $titleObj, $wgUser, $popts);
if($params['onlypst'])
$result_array['externallinks'] = array_keys($p_result->getExternalLinks());
if(isset($prop['sections']))
$result_array['sections'] = $p_result->getSections();
+ if(isset($prop['displaytitle']))
+ $result_array['displaytitle'] = $p_result->getDisplayTitle() ?
+ $p_result->getDisplayTitle() :
+ $titleObj->getPrefixedText();
if(!is_null($oldid))
- $result_array['revid'] = $oldid;
+ $result_array['revid'] = intval($oldid);
$result_mapping = array(
'redirects' => 'r',
'redirects' => false,
'oldid' => null,
'prop' => array(
- ApiBase :: PARAM_DFLT => 'text|langlinks|categories|links|templates|images|externallinks|sections|revid',
+ ApiBase :: PARAM_DFLT => 'text|langlinks|categories|links|templates|images|externallinks|sections|revid|displaytitle',
ApiBase :: PARAM_ISMULTI => true,
ApiBase :: PARAM_TYPE => array(
'text',
'images',
'externallinks',
'sections',
- 'revid'
+ 'revid',
+ 'displaytitle',
)
),
'pst' => false,