Manual:Hooks/SkinTemplateNavigation::Universal

From Linux Web Expert

SkinTemplateNavigation::Universal
<translate> Available from <tvar name=1><translate> version <tvar (r79358, codereview)</tvar></translate>
Called on both content and special pages after variants have been added
<translate> Define function:</translate>
public static function onSkinTemplateNavigation_Universal( SkinTemplate $skinTemplate, array &$links ) { ... }
<translate> Attach hook:</translate> <translate> In <tvar name=1>extension.json</tvar>:</translate>
{
	"Hooks": {
		"SkinTemplateNavigation::Universal": "MediaWiki\\Extension\\MyExtension\\Hooks::onSkinTemplateNavigationUniversal"
	}
}
<translate> Called from:</translate> <translate> File(s):</translate> SkinTemplate.php
<translate> Interface:</translate> SkinTemplateNavigation__UniversalHook.php

<translate> For more information about attaching hooks, see <tvar name=1>Manual:Hooks </tvar>.</translate>
<translate> For examples of extensions using this hook, see <tvar name=cat>Category:SkinTemplateNavigation::Universal extensions</tvar>.</translate>


Details

  • $skinTemplate: SkinTemplate object
  • &$links: Structured array of navigation links

In 1.36 and 1.37 this hook was modified to allow modifications to the personal urls menu that traditionally would be modified by Manual:Hooks/PersonalUrls. If you are modifying the personal menus and support is needed for < 1.36, you will need to use PersonalUrls hook.

Examples

Add a link to a menu

$wgHooks['SkinTemplateNavigation::Universal'][] = function ( $skinTemplate, &$links ) {
	// add a new namespace tab
	$links['namespaces']['my_namespace'] = [
		'class' => '',
		'href' => '#/SkinTemplateNavigationLocalSettings.php',
		'text' => 'SkinTemplateNavigationTab',
	];

	// add a new action
	$links['actions']['my_action'] = [
		'class' => '',
		'href' => '#/SkinTemplateNavigationLocalSettings.php',
		'text' => 'SkinTemplateNavigation action',
	];

	// add a new view
	$links['views']['my_view'] = [
		'class' => '',
		'href' => '#/SkinTemplateNavigationLocalSettings.php',
		'text' => 'SkinTemplateNavigation view',
	];
};

Disable create account/login links on a fishbowl wiki

$wgHooks['SkinTemplateNavigation::Universal'][] = function ( $skinTemplate, &$links ) {
  unset( $links['user-menu']['createaccount'] );
  unset( $links['user-menu']['login'] );
  unset( $links['user-menu']['login-private'] );
  unset( $links['user-menu']['anoncontribs'] );
};

See also