mirror of
https://github.com/StarCitizenTools/mediawiki-skins-Citizen.git
synced 2024-09-23 10:19:43 +00:00
refactor(core): ♻️ use user-menu template data instead
This commit is contained in:
parent
be18ec8f0d
commit
7b311db1a6
|
@ -27,35 +27,18 @@ namespace MediaWiki\Skins\Citizen\Hooks;
|
|||
|
||||
use MediaWiki\Hook\BeforePageDisplayHook;
|
||||
use MediaWiki\Skins\Hook\SkinPageReadyConfigHook;
|
||||
use MediaWiki\Hook\SkinTemplateNavigation__UniversalHook;
|
||||
use OutputPage;
|
||||
use ResourceLoaderContext;
|
||||
use Skin;
|
||||
|
||||
/**
|
||||
* Hooks to run relating the skin
|
||||
*/
|
||||
class SkinHooks implements SkinPageReadyConfigHook, BeforePageDisplayHook {
|
||||
|
||||
/**
|
||||
* SkinPageReadyConfig hook handler
|
||||
*
|
||||
* Replace searchModule provided by skin.
|
||||
*
|
||||
* @since 1.35
|
||||
* @param ResourceLoaderContext $context
|
||||
* @param mixed[] &$config Associative array of configurable options
|
||||
* @return void This hook must not abort, it must return no value
|
||||
*/
|
||||
public function onSkinPageReadyConfig( ResourceLoaderContext $context, array &$config ): void {
|
||||
// It's better to exit before any additional check
|
||||
if ( $context->getSkin() !== 'citizen' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Tell the `mediawiki.page.ready` module not to wire up search.
|
||||
$config['search'] = false;
|
||||
}
|
||||
|
||||
class SkinHooks implements
|
||||
BeforePageDisplayHook,
|
||||
SkinPageReadyConfigHook,
|
||||
SkinTemplateNavigation__UniversalHook
|
||||
{
|
||||
/**
|
||||
* Adds the inline theme switcher script to the page
|
||||
*
|
||||
|
@ -81,4 +64,38 @@ class SkinHooks implements SkinPageReadyConfigHook, BeforePageDisplayHook {
|
|||
|
||||
$out->addHeadItem( 'skin.citizen.inline', $script );
|
||||
}
|
||||
|
||||
/**
|
||||
* SkinPageReadyConfig hook handler
|
||||
*
|
||||
* Replace searchModule provided by skin.
|
||||
*
|
||||
* @since 1.35
|
||||
* @param ResourceLoaderContext $context
|
||||
* @param mixed[] &$config Associative array of configurable options
|
||||
* @return void This hook must not abort, it must return no value
|
||||
*/
|
||||
public function onSkinPageReadyConfig( $context, array &$config ): void {
|
||||
// It's better to exit before any additional check
|
||||
if ( $context->getSkin() !== 'citizen' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Tell the `mediawiki.page.ready` module not to wire up search.
|
||||
$config['search'] = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify navigation links
|
||||
*
|
||||
* @see https://www.mediawiki.org/wiki/Manual:Hooks/SkinTemplateNavigation::Universal
|
||||
* @param SkinTemplate $sktemplate
|
||||
* @param array &$links
|
||||
*/
|
||||
public function onSkinTemplateNavigation__Universal( $sktemplate, &$links ): void {
|
||||
// Remove userpage from user menu since it is used in user menu info
|
||||
if ( $links['user-menu']['userpage'] ) {
|
||||
unset( $links['user-menu']['userpage'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,23 +50,9 @@ final class Header extends Partial {
|
|||
);
|
||||
|
||||
$header = $this->getPersonalHeaderData( $personalTools );
|
||||
// We need userpage for personal header
|
||||
if ( isset( $personalTools['userpage'] ) ) {
|
||||
unset( $personalTools['userpage'] );
|
||||
}
|
||||
|
||||
// Move the Echo badges out of default list
|
||||
// TODO: Remove notifications since MW 1.36 from buildPersonalUrls
|
||||
if ( isset( $personalTools['notifications-alert'] ) ) {
|
||||
unset( $personalTools['notifications-alert'] );
|
||||
}
|
||||
if ( isset( $personalTools['notifications-notice'] ) ) {
|
||||
unset( $personalTools['notifications-notice'] );
|
||||
}
|
||||
|
||||
return [
|
||||
'data-personal-menu-header' => $header,
|
||||
'data-personal-menu-list' => $skin->getPortletData( 'personal', $personalTools ),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -69,8 +69,9 @@
|
|||
}
|
||||
},
|
||||
"Hooks": {
|
||||
"BeforePageDisplay": "SkinHooks",
|
||||
"SkinPageReadyConfig": "SkinHooks",
|
||||
"BeforePageDisplay": "SkinHooks"
|
||||
"SkinTemplateNavigation::Universal": "SkinHooks"
|
||||
},
|
||||
"ResourceModules": {
|
||||
"skins.citizen.styles": {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
aria-haspopup="true">
|
||||
<aside id="citizen-personalMenu__card" class="citizen-personalMenu__card mw-checkbox-hack-target">
|
||||
{{#data-personal-menu-header}}{{>Menu}}{{/data-personal-menu-header}}
|
||||
{{#data-personal-menu-list}}{{>Menu}}{{/data-personal-menu-list}}
|
||||
{{#data-portlets.data-user-menu}}{{>Menu}}{{/data-portlets.data-user-menu}}
|
||||
</aside>
|
||||
<label
|
||||
id="citizen-personalMenu__buttonCheckbox"
|
||||
|
|
Loading…
Reference in a new issue