Help:Customizing toolbars
![]() | This help page is a how-to guide. It explains concepts or processes used by the Wikipedia community. It is not one of Wikipedia's policies or guidelines, and may reflect varying levels of consensus. |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/MediaWiki_portlet_names.svg/500px-MediaWiki_portlet_names.svg.png)
The left sidebar and the top personal toolbar can be customized by editing skin.js or common.js. skin.js
applies to only the current skin, where common.js
applies to all skins.
Overview
[edit]General usage:
$.when( mw.loader.using( 'mediawiki.util' ), $.ready ).then( function () {
mw.util.addPortletLink( 'portletId', 'href', 'text', 'id', 'tooltip', 'accesskey', 'nextnode' );
} );
Where:
mw.util.addPortletLink
: the ResourceLoader function to add links to the portlets.portletId
: portlet id— the section where the new menu item is to be placed. Valid values:p-navigation
: Navigation section in left sidebarp-interaction
: Interaction section in left sidebarp-tb
: Toolbox section in left sidebarp-coll-print_export
: Print/export section in left sidebarp-lang
: Languages section in left sidebarp-wikibase-otherprojects
: In other projects section in left sidebarp-personal
Personal toolbar at the top of the pagep-views
Upper right tabs in Vector only (read, edit, history, watch, etc.)p-cactions
Drop-down menu containing move, etc. (in Vector); subject/talk links and action links in other skins
href
: Link to the Wikipedia or external pagetext
: Text that displaysid
: HTML id (optional)tooltip
: Tooltip to display on mouseover (optional)accesskey
: Shortcut key press (optional)nextnode
: Existing portlet link to place the new portlet link before (optional)
The optional fields must be included in the above order. To skip a field without changing it, use the value null.
Href
[edit]Links to Wikipedia pages are of the form '/wiki/page name'; example: '/wiki/Special:NewPages'.
External links are formatted using the full URL; example: 'http://example.org'.
There are a number of configuration variables that can be used to create more complex links. A configuration variable is read using the function mw.config.get('variableName')
:
wgArticlePath
: Local path, starting at the root, to reference articles, containing a "$1" placeholder that may be replaced by a page title to get a valid URL to that page.wgPageName
: The full name of the page, including the localized namespace name, if the namespace has a name (the main namespace (number 0) doesn't), and with blanks replaced by underscores.wgServer
: The server URL, not terminated by "/".
Given a valid page title title, a valid URL may be constructed using mw.config.get('wgArticlePath').replace('$1', title)
mw.config.get('wgServer') + mw.config.get('wgArticlePath').replace("$1", "Special:ArticleFeedbackv5/"+ encodeURI( mw.config.get( 'wgPageName' ) ) )
However, for local links it may be more advisable, and simple, to use the method mw.util.getUrl
(description, API documentation):
mw.util.getUrl( 'C++' ) // "/wiki/C%2B%2B"
mw.util.getUrl( 'C++', { action: 'history' } ) // "/w/index.php?title=C%2B%2B&action=history"
Placement
[edit]Examples
[edit]Add portlet to a user subpage on the left toolbar:
mw.util.addPortletLink ('p-tb', '/wiki/User:username/pagename', 'My pagename');
Add portlet to Special:NewPages on the left toolbar:
mw.util.addPortletLink ('p-tb', '/wiki/Special:NewPages', 'New Pages');
Open the current page in Checklinks on the left toolbar:
mw.util.addPortletLink ('p-tb', 'http://toolserver.org/~dispenser/cgi-bin/webchecklinks.py/' + encodeURI( mw.config.get( 'wgPageName' ) )
+ '?client=script&citeweb=on&overwrite=&limit=20&lang=' + mw.config.get( 'wgContentLanguage'), 'Checklinks');
Open the current page in Reflinks on the left toolbar:
mw.util.addPortletLink ('p-tb', 'http://toolserver.org/~dispenser/cgi-bin/reflinks.py?lang=' + mw.config.get( 'wgContentLanguage' ) + '&page=' + encodeURIComponent( mw.config.get( 'wgPageName' ) ) + '&autoclick=wpPreview', 'Reflinks');
Open page in Reflinks, on the personal toolbar; formatted in multiple lines:
mw.util.addPortletLink(
'p-personal',
'http://toolserver.org/~dispenser/cgi-bin/reflinks.py?lang=' + mw.config.get( 'wgContentLanguage' ) + '&page=' + encodeURIComponent( mw.config.get( 'wgPageName' ) ) + '&autoclick=wpPreview',
'Reflinks');
Add a portlet to open user subpages to the personal toolbar, placed before the Preferences portlet:
mw.util.addPortletLink(
'p-personal',
'/wiki/Special:PrefixIndex/User:username',
'subpages',
'pt-subpages',
'Your subpages',
null,
'#pt-preferences'
);