Index: branches/REL1_17/phase3/includes/Article.php |
— | — | @@ -41,7 +41,7 @@ |
42 | 42 | var $mTouched = '19700101000000'; // !< |
43 | 43 | var $mUser = -1; // !< Not loaded |
44 | 44 | var $mUserText = ''; // !< username from Revision if set |
45 | | - var $mParserOptions; // !< ParserOptions object |
| 45 | + var $mParserOptions; // !< ParserOptions object for $wgUser articles |
46 | 46 | var $mParserOutput; // !< ParserCache object if set |
47 | 47 | /**@}}*/ |
48 | 48 | |
— | — | @@ -3593,7 +3593,7 @@ |
3594 | 3594 | $edit->revid = $revid; |
3595 | 3595 | $edit->newText = $text; |
3596 | 3596 | $edit->pst = $this->preSaveTransform( $text ); |
3597 | | - $edit->popts = $this->getParserOptions(); |
| 3597 | + $edit->popts = $this->getParserOptions( true ); |
3598 | 3598 | $edit->output = $wgParser->parse( $edit->pst, $this->mTitle, $edit->popts, true, true, $revid ); |
3599 | 3599 | $edit->oldText = $this->getContent(); |
3600 | 3600 | |
— | — | @@ -4434,15 +4434,23 @@ |
4435 | 4435 | |
4436 | 4436 | /** |
4437 | 4437 | * Get parser options suitable for rendering the primary article wikitext |
| 4438 | + * @param $canonical boolean Determines that the generated must not depend on user preferences (see bug 14404) |
4438 | 4439 | * @return mixed ParserOptions object or boolean false |
4439 | 4440 | */ |
4440 | | - public function getParserOptions() { |
4441 | | - global $wgUser; |
| 4441 | + public function getParserOptions( $canonical = false ) { |
| 4442 | + global $wgUser, $wgLanguageCode; |
4442 | 4443 | |
4443 | | - if ( !$this->mParserOptions ) { |
4444 | | - $this->mParserOptions = new ParserOptions( $wgUser ); |
4445 | | - $this->mParserOptions->setTidy( true ); |
4446 | | - $this->mParserOptions->enableLimitReport(); |
| 4444 | + if ( !$this->mParserOptions || $canonical ) { |
| 4445 | + $user = !$canonical ? $wgUser : new User; |
| 4446 | + $parserOptions = new ParserOptions( $user ); |
| 4447 | + $parserOptions->setTidy( true ); |
| 4448 | + $parserOptions->enableLimitReport(); |
| 4449 | + |
| 4450 | + if ( $canonical ) { |
| 4451 | + $parserOptions->setUserLang( $wgLanguageCode ); # Must be set explicitely |
| 4452 | + return $parserOptions; |
| 4453 | + } |
| 4454 | + $this->mParserOptions = $parserOptions; |
4447 | 4455 | } |
4448 | 4456 | |
4449 | 4457 | // Clone to allow modifications of the return value without affecting |
Index: branches/REL1_17/phase3/RELEASE-NOTES |
— | — | @@ -474,6 +474,9 @@ |
475 | 475 | as wikitext on preview. |
476 | 476 | * Page existence is now not revealed (in the colour of the tabs) to users who cannot |
477 | 477 | read the page in question. |
| 478 | +* (bug 14404) The articles are now always saved with the default options. Articles |
| 479 | + with {{int:X}} will have consistent table links no matter the preferences of the |
| 480 | + last saving user. |
478 | 481 | |
479 | 482 | === API changes in 1.17 === |
480 | 483 | * BREAKING CHANGE: action=patrol now requires POST |