milkyway-multimedia/ss-mwm-flashmessage

基于JS的Silverstripe闪存信息插件

安装: 469

依赖: 1

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

开放问题: 0

类型:silverstripe-module

dev-master / 0.3.x-dev 2016-07-08 17:52 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:09:27 UTC


README

使用时有一些特别之处,要添加特定区域的页面,必须在调用前添加要添加的区域。例如

    singleton('message')->cms()->add('Yay! My pretty messages');

如果要添加更多,可以使用链式调用,但必须始终添加区域。

    singleton('message')->cms()->info('Yay! My pretty messages')->cms()->error('A bad message');
  • 添加全局消息 singleton('message')->add($content, $level, $timeout, $priority, $dismissable, $area)
  • 通过数组添加全局消息(如果使用此方法可以添加id) singleton('message')->add($params)
  • Growl示例 singleton('message')->cms()->note('grrr...')
  • 移除全局消息 singleton('message')->remove($content, $level, $area)
  • 通过数组移除全局消息(如果使用此方法可以按id移除) singleton('message')->remove($params)
  • 在显示通知之前添加链接的调用(针对API调用) singleton('message')->before($link)
  • 强制加载特定区域的CSS & JS(针对基于API的消息) singleton('message')->style($area)

可用区域

区域映射到控制器。以下区域可用

  • cms: 将全局消息添加到CMS
  • page: 将全局消息添加到任何页面
  • form: 在表单请求期间添加全局消息
  • global: 添加全局消息

默认使用cms区域。任何其他值都会将消息添加到任何控制器。因此,可以使用 ->global() 添加全局消息。

可用级别

  • info
  • success
  • error
  • warning
  • modal: 显示消息模态框,这将尝试使用bootstrap模态框、jquery ui模态框、vex警报或javascript警报(按优先级排序)
  • note: 显示growl通知,这将尝试使用Messenger、vex警报、CMS通知或javascript警报(按优先级排序)

阻断器

一旦通知被忽略,它将不会在当前会话中显示。要禁用此功能,必须将NullBlocker注入到Notifier类中,如下所示


    Injector:
      message:
        constructor:
          BlocksNotifications: '%$Milkyway\SS\FlashMessage\NullBlocker'

您可以创建自己的实现,但必须实现Milkyway\SS\FlashMessage\Contracts\BlocksNotifications接口,并按上述方式注入。一个例子可以是Cookie阻断器,或者基于区域进行阻断的类。

工作原理

此消息系统基于javascript。只要它访问Silverstripe要求,它就应该在大多数控制器上工作。

安装

将以下内容添加到您的composer.json文件中


    "require"          : {
		"milkyway-multimedia/ss-mwm-flashmessage": "dev-master"
	}

许可证

  • MIT

版本

  • 版本 0.1 (Alpha)

联系

Mellisa Hankins