diff --git a/RELEASE-NOTES-1.23 b/RELEASE-NOTES-1.23 index fb12acd710e..37fe9f1b1bb 100644 --- a/RELEASE-NOTES-1.23 +++ b/RELEASE-NOTES-1.23 @@ -128,6 +128,10 @@ production. when the email address is already confirmed. Also, consistently use "confirmed", rather than "authenticated", when messaging whether or not the user has confirmed an email address. +* (bug 19415) action=render no longer shows section edit links. This affects + behavior of several other features where (bogus) section edit links will + disappear, such as file description pages loaded via $wgUseInstantCommons or + pages transcluded cross-wiki via $wgEnableScaryTranscluding. * (bug 56912) Show correct link color on cached result of Special:DeadendPages. * Classes TitleListDependency and TitleDependency have been removed, as they have been found unused in core and extensions for a long time. diff --git a/includes/Article.php b/includes/Article.php index b132ca9f9a7..28a53801e29 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -1480,6 +1480,7 @@ class Article implements Page { */ public function render() { $this->getContext()->getOutput()->setArticleBodyOnly( true ); + $this->getContext()->getOutput()->enableSectionEditLinks( false ); $this->view(); } diff --git a/includes/OutputPage.php b/includes/OutputPage.php index efcd838df3c..68958b648f3 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -257,10 +257,15 @@ class OutputPage extends ContextSource { private $mTarget = null; /** - * @var bool: Whether output should contain table of contents + * @var bool: Whether parser output should contain table of contents */ private $mEnableTOC = true; + /** + * @var bool: Whether parser output should contain section edit links + */ + private $mEnableSectionEditLinks = true; + /** * Constructor for OutputPage. This should not be called directly. * Instead a new RequestContext should be created and it will implicitly create @@ -1613,6 +1618,11 @@ class OutputPage extends ContextSource { function addParserOutput( &$parserOutput ) { $this->addParserOutputNoText( $parserOutput ); $parserOutput->setTOCEnabled( $this->mEnableTOC ); + + // Touch section edit links only if not previously disabled + if ( $parserOutput->getEditSectionTokens() ) { + $parserOutput->setEditSectionTokens( $this->mEnableSectionEditLinks ); + } $text = $parserOutput->getText(); wfRunHooks( 'OutputPageBeforeHTML', array( &$this, &$text ) ); $this->addHTML( $text ); @@ -3691,4 +3701,21 @@ $templates public function isTOCEnabled() { return $this->mEnableTOC; } + + /** + * Enables/disables section edit links, doesn't override __NOEDITSECTION__ + * @param bool $flag + * @since 1.23 + */ + public function enableSectionEditLinks( $flag = true ) { + $this->mEnableSectionEditLinks = $flag; + } + + /** + * @return bool + * @since 1.23 + */ + public function sectionEditLinksEnabled() { + return $this->mEnableSectionEditLinks; + } }