}
}
+ // Footer links (used by SkinTemplate::prepareQuickTemplate)
+ foreach ( [
+ $this->footerLinkTitle( 'privacy', 'privacypage' ),
+ $this->footerLinkTitle( 'aboutsite', 'aboutpage' ),
+ $this->footerLinkTitle( 'disclaimers', 'disclaimerpage' ),
+ ] as $title ) {
+ if ( $title ) {
+ $titles[] = $title;
+ }
+ }
+
Hooks::run( 'SkinPreloadExistence', [ &$titles, $this ] );
if ( $titles ) {
if ( $title->isSpecialPage() ) {
$type = 'ns-special';
- // bug 23315: provide a class based on the canonical special page name without subpages
+ // T25315: provide a class based on the canonical special page name without subpages
list( $canonicalName ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
if ( $canonicalName ) {
$type .= ' ' . Sanitizer::escapeClass( "mw-special-$canonicalName" );
$html = htmlspecialchars( $icon["alt"] );
}
if ( $url ) {
- $html = Html::rawElement( 'a', [ "href" => $url ], $html );
+ global $wgExternalLinkTarget;
+ $html = Html::rawElement( 'a',
+ [ "href" => $url, "target" => $wgExternalLinkTarget ],
+ $html );
}
}
return $html;
* @return string HTML anchor
*/
public function footerLink( $desc, $page ) {
- // if the link description has been set to "-" in the default language,
- if ( $this->msg( $desc )->inContentLanguage()->isDisabled() ) {
- // then it is disabled, for all languages.
+ $title = $this->footerLinkTitle( $desc, $page );
+ if ( !$title ) {
return '';
- } else {
- // Otherwise, we display the link for the user, described in their
- // language (which may or may not be the same as the default language),
- // but we make the link target be the one site-wide page.
- $title = Title::newFromText( $this->msg( $page )->inContentLanguage()->text() );
+ }
- if ( !$title ) {
- return '';
- }
+ return Linker::linkKnown(
+ $title,
+ $this->msg( $desc )->escaped()
+ );
+ }
- return Linker::linkKnown(
- $title,
- $this->msg( $desc )->escaped()
- );
+ /**
+ * @param string $desc
+ * @param string $page
+ * @return Title|null
+ */
+ private function footerLinkTitle( $desc, $page ) {
+ // If the link description has been set to "-" in the default language,
+ if ( $this->msg( $desc )->inContentLanguage()->isDisabled() ) {
+ // then it is disabled, for all languages.
+ return null;
}
+ // Otherwise, we display the link for the user, described in their
+ // language (which may or may not be the same as the default language),
+ // but we make the link target be the one site-wide page.
+ $title = Title::newFromText( $this->msg( $page )->inContentLanguage()->text() );
+
+ return $title ?: null;
}
/**
$line = array_map( 'trim', explode( '|', $line, 2 ) );
if ( count( $line ) !== 2 ) {
// Second sanity check, could be hit by people doing
- // funky stuff with parserfuncs... (bug 33321)
+ // funky stuff with parserfuncs... (T35321)
continue;
}
$attribs = [];
if ( !is_null( $tooltip ) ) {
- # Bug 25462: undo double-escaping.
+ # T27462: undo double-escaping.
$tooltip = Sanitizer::decodeCharReferences( $tooltip );
$attribs['title'] = wfMessage( 'editsectionhint' )->rawParams( $tooltip )
->inLanguage( $lang )->text();