mwstake / mediawiki-component-alertbanners
Provides an API for showing banners above the content of a page
Installs: 29 675
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 7
Forks: 1
Open Issues: 0
pkg:composer/mwstake/mediawiki-component-alertbanners
Requires
Requires (Dev)
README
AlertBanners for MediaWiki
Provides an API for showing banners above the content of a page
This code is meant to be executed within the MediaWiki application context. No standalone usage is intended.
Compatibility
3.0.x-> MediaWiki 1.432.0.x-> MediaWiki 1.392.0.x-> MediaWiki 1.35
Use in a MediaWiki extension
Require this component in the composer.json of your extension:
{
"require": {
"mwstake/mediawiki-component-alertbanners": "~3"
}
}
Since 2.0 explicit initialization is required. This can be achived by
- either adding
"callback": "mwsInitComponents"to yourextension.json/skin.json - or calling
mwsInitComponents();within you extensions/skins customcallbackmethod
See also mwstake/mediawiki-componentloader.
Implement a provider
Create a class that implements MWStake\MediaWiki\Component\AlertBanners\IAlertProvider. For convenience you may want to derive directly from the abstract base class MWStake\MediaWiki\Component\AlertBanners\AlertProviderBase
Register a provider
There are two ways to register a provider:
- Using the
mwsgAlertBannersProviderRegistryGlobalVars configuraton - Using the hook
MWStakeAlertBannersRegisterProviders
On both cases a ObjectFactory specification must be provided.
Example 1: GlobalVars
$GLOBALS['mwsgAlertProviderRegistry']['my-own-provider'] = [ 'class' => '\\MediaWiki\Extension\\MyExt\\MyAlertProvider', 'services' => 'MainConfig' ];
Example 2: Hookhandler
$GLOBALS['wgHooks']['MWStakeAlertBannersRegisterProviders'][] = function( &$providers ) { $providers["my-own-provider"] = [ 'class' => '\\MediaWiki\Extension\\MyExt\\MyAlertProvider', 'services' => 'MainConfig' ] }
Use in client code
Load mwstake.component.alertbanners ResourceLoader module.
Available methods:
mwstake.alerts.add( id: string, $elem: jQuery, type: string ): Inject a alert boxmwstake.alerts.remove( id: string ): Remove a alert box