User:Jdlrobson/Skins for extension developers

Q: I want to add a link to the personal tools
A: Use the PersonalUrls hook.

Q: I want to add a new "portal" menu to the sidebar.
A: Use SidebarBeforeOutput.

Q: I want to add a tab alongside user page and discussion
A: Use SkinTemplateNavigation::Universal and modify the 'namespaces' key.

Q: I want to add another article view alongside edit and history
A: Use SkinTemplateNavigation::Universal and modify the 'views' key.

Q: I want to add another action alongside move and delete.
A: Use kinTemplateNavigation::Universal and modify the 'actions' key.

Q: I have a link that should only be added to certain pages e.g. special pages
A: Use the appropriate hook and inspect the Title object.

Q: I want to hide a link

Add a stylesheet to hide the component. Otherwise please make a feature request for core to provide a method of disabling.

Q: I want to add something to the footer
A: Use the hook SkinAddFooterLinks.

I want to hide a link!

Vector hooks
(deprecated)


 * VectorAfterToolbox (used by ShoutWikiAds)
 * VectorBeforeFooter (used by ShoutWikiAds)

BaseTemplate hooks
(extends QuickTemplate)

The following hooks will soon no longer work on Vector:


 * BaseTemplateToolbox
 * MachineVision (safe as it uses Skin)
 * CiteThisPage (uses nav_urls)
 * BlueSpice (uses nav_urls)
 * ArticleRating (safe uses Skin)
 * ArticlePlaceholder (safe uses Skin)
 * Wikibase (safe)
 * MassEditRegex (safe, unsets toolbox)
 * ParserMigration (safe)
 * PerformanceInspector (safe uses Skin)
 * UploadsLink (safe uses Skin)
 * UrlShorterner (safe uses Skin)
 * Sanctions (safe uses Skin)
 * Mpdf (safe)
 * AdvancedBackLinks (uses nav_urls)
 * fagocytoza (uses skin)
 * SemanticMediaWiki (uses BaseTemplateToolbox which is safe as it only uses skin)
 * Svetovidd safe as it doesnt use BaseTemplate
 * BlueSpiceUEModuleHTML (uses TOOLBOX_BLACKLIST modified in SkinTemplateOutputPageBeforeExec/ModifySidebar.php but has isset checks so safe)
 * Cargo (addLink is safe)
 * Translate (safe)
 * VirtualKeyboard (compatible)
 * SkinTemplateToolboxEnd
 * Contributors is Monobook only (uses nav_urls)
 * CreateRedirect (safe with runBaseTemplateCompatibleHook)
 * LanguageSelector (safe with runBaseTemplateCompatibleHook)
 * RelatedLinks (safe with runBaseTemplateCompatibleHook)
 * AdvancedBackLinks (uses nav_urls)
 * Duplicator (uses nav_urls)
 * SemanticWebBrowser (uses is_article)
 * ShortUrlHooks (safe, uses Skin)
 * WikiArticleFeeds (incompatible with latest mediawiki)
 * BaseTemplateAfterPortlet
 * Wikibase (uses wbeditlanglinks which is set inside SkinTemplateOutputPageBeforeExecHandler.php)

Active hooks (To organize)
(extends ContextSource)

Active hooks:


 * SkinPreloadExistence
 * SkinAfterContent
 * SkinAfterBottomScripts
 * UndeletePageToolLinks
 * SkinSubPageSubtitle
 * SkinCopyrightFooter
 * SkinGetPoweredBy
 * SkinBuildSidebar
 * SidebarBeforeOutput
 * GetNewMessagesAlert
 * SiteNoticeBefore
 * SiteNoticeAfter
 * SkinEditSectionLinks

Active hooks (but currently run inside SkinTemplate)


 * PersonalUrls
 * SkinAddFooterLinks

SkinTemplate hooks
(extends Skin hooks)

Active hooks:


 * SkinTemplateGetLanguageLink (to rename)
 * SkinTemplateTabAction
 * SkinTemplatePreventOtherActiveTabs
 * SkinTemplateNavigation
 * SkinTemplateNavigation::SpecialPage
 * SkinTemplateNavigation::Universal
 * SkinTemplateBuildNavUrlsNav_urlsAfterPermalink

Deprecated (or soon to be deprecated) hooks:


 * SkinTemplateOutputPageBeforeExec (https://phabricator.wikimedia.org/T60137)