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): skins/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.
Details[edit]
- $skin: Skin object
- &$bar: Sidebar contents
Modify $bar to add or modify sidebar portlets.
Simple examples[edit]
// This will create a 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 ) {
$query = [ 'action' => 'edit', 'page_id' => $page_id ];
$link_url = SpecialPage::getTitleFor( 'TestPage' )->getLinkURL( $query );
$mylink1 = [
'text' => 'TestPage',
'href' => $link_url,
'id' => 'n-login',
'active' => ''
];
$bar['name of heading'] = [ $mylink1 ];
};