As part of the desktop refresh project, Vector will soon no longer run the SkinTemplateOutputPageBeforeExec hook as part of its move away from BaseTemplate in T251212. This will require updates in various extensions. I will open specific bugs in specific projects as I get to them and will likely post the required Gerrit patches so help with code review would be appreciated. I will close this task once the appropriate tasks have been filed
The migration will be done slowly to allow impacted projects to update to preferred hooks and add any ones that are missing.
# Research scope
### Wikibase
Permitted hooks: SkinTemplateGetLanguageLink (Modify language items) BaseTemplateAfterPortlet for adding link after languages. To omit languages altogether from a page, use SidebarBeforeOutput and set languages to false.
* Wikibase [[ https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/fafca1f24bfab9e7e0419f1d9a43503a66b5adb0/client/includes/Hooks/SkinTemplateOutputPageBeforeExecHandler.php#L52 | link]] (modifies language_urls - emptying it and adding a link).
### UniversalLanguageSelector
Permitted hooks: SkinTemplateGetLanguageLink (Modify language items) BaseTemplateAfterPortlet for adding link after languages. To omit languages altogether from a page, use SidebarBeforeOutput and set languages to false.
* https://gerrit.wikimedia.org/g/mediawiki/extensions/UniversalLanguageSelector/+/18552a71428f46d0ba6a955c6679b2f0965c0ca0/includes/UniversalLanguageSelectorHooks.php#426 (also modifies language_urls)
### BlogPage
(using the hook to modifying categories)
NOTE: The inline comment from ashley on 23 January 2017 suggests we don't understand why this is happening
* BlogPage https://gerrit.wikimedia.org/g/mediawiki/extensions/BlogPage/+/ea18eb7cf03321e912c89e975fef766417bcb851/includes/BlogPage.hooks.php#29
### Wikidata.org
Please use https://www.mediawiki.org/wiki/Manual:Hooks/SkinAddFooterLinks to add footer items to skins.
* https://gerrit.wikimedia.org/g/mediawiki/extensions/Wikidata.org/+/32193c6100734e27a4b525d795ae85da2af4c954/src/Hooks.php#53 (adds footer link)
# Results of spike
## Impacted extensions that are not compatible with latest MediaWiki
NOTE: These extensions are not compatible with latest MediaWiki so will not be patched.
### News
To modify feeds it should use OutputPage::addFeedLink instead in any of the OutputPage hooks.
* News (modifies feeds https://gerrit.wikimedia.org/g/mediawiki/extensions/News/+/18480933ba03da21b4596fa006830b801a244a64/News.php#112)
### LanguageSelector
* LanguageSelector modifies side bar (https://gerrit.wikimedia.org/g/mediawiki/extensions/LanguageSelector/+/8e3c6d6c8a17170b103f7de2f1ee4b5f2b2be111/LanguageSelector.php#299) however the extension is not compatible with the latest mediawiki
Please use SidebarBeforeOutput to add items to the side bar.
### StickToThatLanguage
* https://gerrit.wikimedia.org/g/mediawiki/extensions/StickToThatLanguage/+/896663af81498ddb5e7f7d01c50edcc0c245ad9e/StickToThatLanguage.hooks.php#79
### PushToWatch
Updates footer
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/PushToWatch/+/master/PushToWatch.class.php
Permitted hooks: SkinTemplateGetLanguageLink (Modify language items) BaseTemplateAfterPortlet for adding link after languages. To omit languages altogether from a page, use SidebarBeforeOutput and set languages to false.
### SharedHelpPages
Use OutputPage::setCopyright inside an OutputPage hook to modify copyright.
* SharedHelpPages (modifies copyright) https://gerrit.wikimedia.org/g/mediawiki/extensions/SharedHelpPages/+/cc4801a5fbc2a7f4476e108ba19a584bd0eabf83/SharedHelpPages.hooks.php#236
## Acceptance criteria
[x] WikimediaMessages has been patched and merged [[ https://gerrit.wikimedia.org/r/596247 | Fix ]]
[x] WhoIsWatching https://gerrit.wikimedia.org/g/mediawiki/extensions/WhoIsWatching/+/7e4ac0dee460de88aaeebd0da078820ee7929d44/src/Hook.php#42
[x] SemanticMediaWiki https://github.com/SemanticMediaWiki/SemanticBreadcrumbLinks/issues/69
[] Appropriate steps from ashley for BlogPage have been identified
[] A task/patch for Wikidata.org has been filed
[] Identify action plan for UniversalLanguageSelector
[] Identify action plan for Wikibase
# Sign off steps
[] Update T60137