From: Kunal Mehta Date: Tue, 31 May 2016 23:46:00 +0000 (-0700) Subject: SkinTemplate: Set link classes on content_navigation tabs X-Git-Tag: 1.31.0-rc.0~6357 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22sites_tous%22%29%20.%20%22?a=commitdiff_plain;h=3f14ba7ca8e02fab1b8347e522993ffd2c872afc;p=lhc%2Fweb%2Fwiklou.git SkinTemplate: Set link classes on content_navigation tabs Set link classes like 'mw-redirect' and 'stub' on the content_navigation tabs. Bug: T24976 Change-Id: I10b9b3f95a340ac028a53ea27ec857c12f8bef19 --- diff --git a/includes/skins/BaseTemplate.php b/includes/skins/BaseTemplate.php index 3408db3487..13db176958 100644 --- a/includes/skins/BaseTemplate.php +++ b/includes/skins/BaseTemplate.php @@ -425,7 +425,8 @@ abstract class BaseTemplate extends QuickTemplate { * list item directly so they will not be passed to makeLink * (however the link will still support a tooltip and accesskey from it) * If you need an id or class on a single link you should include a "links" - * array with just one link item inside of it. If you want to add a title + * array with just one link item inside of it. You can also set "link-class" in + * $item to set a class on the link itself. If you want to add a title * to the list item itself, you can set "itemtitle" to the value. * $options is also passed on to makeLink calls * @@ -450,6 +451,12 @@ abstract class BaseTemplate extends QuickTemplate { // generating tooltips and accesskeys. $link['single-id'] = $item['id']; } + if ( isset( $link['link-class'] ) ) { + // link-class should be set on the itself, + // so pass it in as 'class' + $link['class'] = $link['link-class']; + unset( $link['link-class'] ); + } $html = $this->makeLink( $key, $link, $options ); } diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php index cefc5bcd5c..69e2e8b2b1 100644 --- a/includes/skins/SkinTemplate.php +++ b/includes/skins/SkinTemplate.php @@ -17,6 +17,7 @@ * * @file */ +use MediaWiki\MediaWikiServices; /** * Base class for template-based skins. @@ -749,6 +750,8 @@ class SkinTemplate extends Skin { } } + $linkClass = MediaWikiServices::getInstance()->getLinkRenderer()->getLinkClasses( $title ); + // wfMessageFallback will nicely accept $message as an array of fallbacks // or just a single key $msg = wfMessageFallback( $message )->setContext( $this->getContext() ); @@ -771,11 +774,16 @@ class SkinTemplate extends Skin { return $result; } - return [ + $result = [ 'class' => implode( ' ', $classes ), 'text' => $text, 'href' => $title->getLocalURL( $query ), 'primary' => true ]; + if ( $linkClass !== '' ) { + $result['link-class'] = $linkClass; + } + + return $result; } function makeTalkUrlDetails( $name, $urlaction = '' ) {