substr( $m[0], 0, 20 ) . '"' );
}
$url = wfMessage( $urlmsg, $id )->inContentLanguage()->text();
- return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $cssClass );
+ return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $cssClass, [], $this->mTitle );
} elseif ( isset( $m[6] ) && $m[6] !== '' ) {
# ISBN
$isbn = $m[6];
$text = Linker::makeExternalLink( $url,
$this->getConverterLanguage()->markNoConversion( $url, true ),
true, 'free',
- $this->getExternalLinkAttribs( $url ) );
+ $this->getExternalLinkAttribs( $url ), $this->mTitle );
# Register it in the output object...
# Replace unnecessary URL escape codes with their equivalent characters
$pasteurized = self::normalizeLinkUrl( $url );
# Funny characters like รถ aren't valid in URLs anyway
# This was changed in August 2004
$s .= Linker::makeExternalLink( $url, $text, false, $linktype,
- $this->getExternalLinkAttribs( $url ) ) . $dtrail . $trail;
+ $this->getExternalLinkAttribs( $url ), $this->mTitle ) . $dtrail . $trail;
# Register link in the output object.
# Replace unnecessary URL escape codes with the referenced character
* (depending on configuration, namespace, and the URL's domain) and/or a
* target attribute (depending on configuration).
*
- * @param string|bool $url Optional URL, to extract the domain from for rel =>
+ * @param string $url URL to extract the domain from for rel =>
* nofollow if appropriate
* @return array Associative array of HTML attributes
*/
- public function getExternalLinkAttribs( $url = false ) {
+ public function getExternalLinkAttribs( $url ) {
$attribs = [];
$rel = self::getExternalLinkRel( $url, $this->mTitle );
break;
case 'revisionuser':
# Let the edit saving system know we should parse the page
- # *after* a revision ID has been assigned. This is for null edits.
- $this->mOutput->setFlag( 'vary-revision' );
- wfDebug( __METHOD__ . ": {{REVISIONUSER}} used, setting vary-revision...\n" );
+ # *after* a revision ID has been assigned for null edits.
+ $this->mOutput->setFlag( 'vary-user' );
+ wfDebug( __METHOD__ . ": {{REVISIONUSER}} used, setting vary-user...\n" );
$value = $this->getRevisionUser();
break;
case 'revisionsize':
- # Let the edit saving system know we should parse the page
- # *after* a revision ID has been assigned. This is for null edits.
- $this->mOutput->setFlag( 'vary-revision' );
- wfDebug( __METHOD__ . ": {{REVISIONSIZE}} used, setting vary-revision...\n" );
$value = $this->getRevisionSize();
break;
case 'namespace':
&& $this->mOptions->getAllowSpecialInclusion()
&& $this->ot['html']
) {
+ $specialPage = SpecialPageFactory::getPage( $title->getDBkey() );
// Pass the template arguments as URL parameters.
// "uselang" will have no effect since the Language object
// is forced to the one defined in ParserOptions.
$context = new RequestContext;
$context->setTitle( $title );
$context->setRequest( new FauxRequest( $pageArgs ) );
- $context->setUser( $this->getUser() );
+ if ( $specialPage && $specialPage->maxIncludeCacheTime() === 0 ) {
+ $context->setUser( $this->getUser() );
+ } else {
+ // If this page is cached, then we better not be per user.
+ $context->setUser( User::newFromName( '127.0.0.1', false ) );
+ }
$context->setLanguage( $this->mOptions->getUserLangObj() );
$ret = SpecialPageFactory::capturePath( $title, $context );
if ( $ret ) {
$this->mOutput->addOutputPageMetadata( $context->getOutput() );
$found = true;
$isHTML = true;
- $this->disableCache();
+ if ( $specialPage && $specialPage->maxIncludeCacheTime() !== false ) {
+ $this->mOutput->updateCacheExpiry( $specialPage->maxIncludeCacheTime() );
+ }
}
} elseif ( MWNamespace::isNonincludable( $title->getNamespace() ) ) {
$found = false; # access denied
# will change the size.
if ( $revObject ) {
$this->mRevisionSize = $revObject->getSize();
- } elseif ( $this->ot['wiki'] || $this->mOptions->getIsPreview() ) {
+ } else {
$this->mRevisionSize = $this->mInputSize;
}
}