Manual:Hooks/SkinBuildSidebar

SkinBuildSidebar
Available from version 1.14.0
At the end of Skin::buildSidebar().
Define function:
public static function onSkinBuildSidebar( Skin $skin, &$bar ) { ... }
Attach hook:

In extension.json:

{
	"Hooks": {
		"SkinBuildSidebar": "MyExtensionHooks::onSkinBuildSidebar"
	}
}
Called from:File(s): Skin.php
Interface:SkinBuildSidebarHook.php

For more information about attaching hooks, see Manual:Hooks .
For examples of extensions using this hook, see Category:SkinBuildSidebar extensions.

DetailsEdit

  • $skin: Skin object
  • &$bar: Sidebar contents

Modify $bar to add or modify sidebar portlets.

Simple examplesEdit

// This will create new sidebar item and put it in 'navigation' section.
// This is usually the topmost section near the logo and is untitled.
/**
 * @param Skin $skin
 * @param array $bar
 */
$wgHooks['SkinBuildSidebar'][] = function( $skin, &$bar ) {
	$bar['navigation'][] = [
		'text'  => $skin->msg( 'wikimediashoplink-linktext' ),
		'href'  => '//shop.wikimedia.org',
		'title' => $skin->msg( 'wikimediashoplink-link-tooltip' ),
		'id'    => 'n-shoplink',
	];
};
// If you want create your own section in the sidebar, use the example below.
// You can change 'name of heading' to be the name of the section as you like.
// You can add more elements to the section by extending the [ $mylink1 ] array;
// So for example [ $mylink1, $mylink2, $mylink3  ] would add three items in the
// section. Each $mylink* must be an array in the same format as specified below
// else fatal error may occur.
/**
 * @param Skin $skin
 * @param array &$bar
 */
$wgHooks['SkinBuildSidebar'][] = function( $skin, &$bar ) {
       $mylink1 = [
           'text'   => 'TestPage',
           'href'   => '#',
           'id'     => 'n-login',
           'active' => ''
       ];

       $bar['name of heading'] = [ $mylink1 ];

};