全站通知:

模板:PopupNotice

来自烟雨江湖WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

本零件将尝试在所有引用模板:PopupNotice的页面上显示一个弹窗。

  • 编辑可以定义该弹窗的内容、ID和沉默时间(interval)。如果用户点击了弹窗上的关闭按钮,则在沉默时间内同一ID的消息将不再显示。
  • 如果需要显示另一条消息,请编辑模板:PopupNotice,为其配置新的内容和ID。
  • 旧的消息将不再提示。未来会看情况加入多条消息的功能。

使用方法

{{{title|}}}
{{{content|}}}
3天内不再提示

调用

  • 在需要弹窗的页面中引用主模板({{popupNotice}})。
  • 你可以在MediaWiki:Sitenotice中引用主模板以达到全站生效。
  • 由于JS有缓存,你可能需要在安装零件后开启调试模式才能看到效果。

配置

直接修改popupNotice模板,修改其中的参数即可。如:

{{popupNotice/source
|id= 
|enabled= 
|width=
|interval= 
|title= 
|content= }}

参数说明

ID
通知的标识,任意字符串。用户点击关闭后,浏览器将记录该通知的ID。指定时间内同一条通知不会再次显示。
如果需要在短时间内更换另一条通知,请更换另一个ID。
暂时不支持消息队列功能,即同一时间只能有一个通知生效。
enabled
开关。属性值不为空时即生效。
width
正数。弹出窗口的宽度,单位为px。填写时只需要填写数字即可。默认值为320px。
interval
正整数。自用户首次点击关闭后,下一次弹出相同消息的间隔时间(天)。
默认为3天。你可以通过更改ID属性来重新弹出消息。
title
通知的标题。
content
通知的内容。可以使用wikitext。

美化

你可以访问模板:popupNotice/source修改弹窗样式。

测试

  • 本文档额外引用了一次弹窗,你可以在本页进行测试。注意该弹窗与其他页面的弹窗内容一致。
  • 你可以使用浏览器控制台进行cookies的操作,以便模拟用户的行为。
    • 脚本中内置了控制台Log功能。MediaWiki:Gadget-PopupNotice.jsdebug变量设置为true,脚本会向F12的控制台发送消息。建议在调试完成后将该变量改为false。
    • 该功能会向cookies中写入名为popupNotice-[站点前缀]-[通知ID]的条目,从而使同一条通知被关闭后不会再次显示。
    • 你可以用控制台运行Cookies.get('popupNotice-[站点前缀]-[通知ID]')命令来检查相应ID的cookies是否已被标记(即被阅读)。
    • 同理,你可以运行Cookies.remove('popupNotice-[站点前缀]-[通知ID]')来删除条目,以达到模拟第一次阅读的效果。

关于js-cookie的更多用法,请访问github.com/js-cookie

移植模板

  • 在管理的wiki下创建以下内容:
  • 在管理的wiki下MediaWiki:Gadgets-definition页面中申明(需管理员权限)
    * PopupNotice [ResourceLoader|default] | Js.cookie.js | PopupNotice.js