var $mTouched = '19700101000000'; // !<
var $mUser = -1; // !< Not loaded
var $mUserText = ''; // !< username from Revision if set
- var $mParserOptions; // !< ParserOptions object
+ var $mParserOptions; // !< ParserOptions object for $wgUser articles
var $mParserOutput; // !< ParserCache object if set
/**@}}*/
$edit->revid = $revid;
$edit->newText = $text;
$edit->pst = $this->preSaveTransform( $text );
- $edit->popts = $this->getParserOptions();
+ $edit->popts = $this->getParserOptions( true );
$edit->output = $wgParser->parse( $edit->pst, $this->mTitle, $edit->popts, true, true, $revid );
$edit->oldText = $this->getContent();
/**
* Get parser options suitable for rendering the primary article wikitext
+ * @param $canonical boolean Determines that the generated must not depend on user preferences (see bug 14404)
* @return mixed ParserOptions object or boolean false
*/
- public function getParserOptions() {
- global $wgUser;
-
- if ( !$this->mParserOptions ) {
- $this->mParserOptions = new ParserOptions( $wgUser );
- $this->mParserOptions->setTidy( true );
- $this->mParserOptions->enableLimitReport();
+ public function getParserOptions( $canonical = false ) {
+ global $wgUser, $wgLanguageCode;
+
+ if ( !$this->mParserOptions || $canonical ) {
+ $user = !$canonical ? $wgUser : new User;
+ $parserOptions = new ParserOptions( $user );
+ $parserOptions->setTidy( true );
+ $parserOptions->enableLimitReport();
+
+ if ( $canonical ) {
+ $parserOptions->setUserLang( $wgLanguageCode ); # Must be set explicitely
+ return $parserOptions;
+ }
+ $this->mParserOptions = $parserOptions;
}
// Clone to allow modifications of the return value without affecting