mwstake/mediawiki-component-alertbanners

提供显示页面内容上方横幅的API

2.0.5 2023-01-18 15:21 UTC

This package is auto-updated.

Last update: 2024-09-11 08:22:46 UTC


README

MediaWiki的AlertBanners

提供显示页面内容上方横幅的API

此代码旨在在MediaWiki应用环境中执行。不打算独立使用。

在MediaWiki扩展中使用

"mwstake/mediawiki-component-alertbanners": "~2.0"添加到您的composer.json文件的require部分。

从2.0版本开始,需要显式初始化。这可以通过以下方式实现:

  • 在您的extension.json/skin.json中添加"callback": "mwsInitComponents"
  • 或者在您扩展/skins的自定义callback方法中调用mwsInitComponents();

也请参阅mwstake/mediawiki-componentloader

实现一个提供者

创建一个实现MWStake\MediaWiki\Component\AlertBanners\IAlertProvider的类。为了方便,您可能希望直接从抽象基类MWStake\MediaWiki\Component\AlertBanners\AlertProviderBase派生。

注册一个提供者

有两种方式可以注册一个提供者

  1. 使用mwsgAlertBannersProviderRegistry全局变量配置
  2. 使用钩子MWStakeAlertBannersRegisterProviders

在两种情况下,都必须提供一个ObjectFactory规范

示例1:全局变量

$GLOBALS['mwsgAlertProviderRegistry']['my-own-provider'] = [
    'class' => '\\MediaWiki\Extension\\MyExt\\MyAlertProvider',
    'services' => 'MainConfig'
];

示例2:钩子处理器

$GLOBALS['wgHooks']['MWStakeAlertBannersRegisterProviders'][] = function( &$providers ) {
    $providers["my-own-provider"] = [
        'class' => '\\MediaWiki\Extension\\MyExt\\MyAlertProvider',
        'services' => 'MainConfig'
    ]
}

在客户端代码中使用

加载mwstake.component.alertbanners ResourceLoader模块。

可用方法

  • mwstake.alerts.add( id: string, $elem: jQuery, type: string ):注入一个警告框
  • mwstake.alerts.remove( id: string ):删除一个警告框