nzta / silverstripe-sitebanner
通过CMS激活的全站横幅
4.0.0
2023-04-16 23:26 UTC
Requires
- php: >= 8.0
- silverstripe/cms: ^5
Requires (Dev)
Suggests
- symbiote/silverstripe-gridfieldextensions: Allows sorting of site banners
This package is auto-updated.
Last update: 2024-09-16 05:49:38 UTC
README
允许CMS作者创建全站横幅,以便无论用户查看哪个页面,都能提醒他们重要信息。
功能
- 主题模板
- 配置警报类型(默认为“信息”、“警告”和“警报”)
- 多个并发警报
- 设置警报的开始/结束日期
- 权限控制
- CMS UI控件和标签的本地化
- 通过版本控制预览和发布
- CMS用户可以将横幅设置为“可关闭”,允许用户在阅读后隐藏横幅。
- 富文本编辑(插入链接和图片)
- 可选:通过gridfieldextensions进行排序
- 支持子站
屏幕截图
要求
- php >= 8.0
- SilverStripe ^5
对于此模块的Silverstripe CMS ^4兼容版本,请参阅发布 <=3.0.1。
安装
composer require nzta/silverstripe-sitebanner
配置
网站设置
将以下内容添加到您的YAML配置文件中,以配置此模块
SilverStripe\SiteConfig\SiteConfig:
extensions:
- NZTA\SiteBanner\Extensions\SiteConfigExtension
将以下环境变量添加到您的.env
文件中,以在网站设置中激活此模块
SITEBANNER_SITECONFIG=1
现在可以在admin/settings
中配置网站横幅了。
注意:网站设置界面是一个遗留功能,它存在是为了保持与任何仍然想要使用此界面的用户的背景兼容性。此功能不会收到未来的更新,我们建议使用与模型管理员默认实现。
模型管理员
默认情况下,网站横幅通过模型管理员界面进行管理。
模板
为了显示横幅,您需要将它们添加到模板中
<% loop $SiteConfig.SiteBanners %>
<div id="site-banner-$ID" class="site-banner site-banner-$Type site-banner--hidden" role="alert" data-id="$ID" aria-hidden="true" data-nosnippet>
$Content
<% if $Dismiss %>
<button class="site-banner-close" aria-label="Close" data-id="$ID">×</button>
<% end_if %>
</div>
<% end_loop %>
Bootstrap样式
如果您正在使用Bootstrap,通过结合上下文背景和图标,可以轻松地获取有用的默认警报样式。
<% loop $SiteConfig.SiteBanners %>
<% if $Type == 'info' %>
<p class="bg-info site-banner site-banner-$Type site-banner--hidden" role="alert" data-id="$ID" aria-hidden="true" data-nosnippet>
<span class="glyphicon glyphicon-info-sign" aria-hidden="true" />
$Content
</p>
<% end_if %>
<% if $Type == 'warning' %>
<p class="bg-warning site-banner site-banner-$Type site-banner--hidden" role="alert" data-id="$ID" aria-hidden="true" data-nosnippet>
<span class="glyphicon glyphicon-warning-sign" aria-hidden="true" />
$Content
</p>
<% end_if %>
<% if $Type == 'alert' %>
<p class="bg-danger site-banner site-banner-$Type site-banner--hidden" role="alert" data-id="$ID" aria-hidden="true" data-nosnippet>
<span class="glyphicon glyphicon-warning-sign" aria-hidden="true" />
$Content
</p>
<% end_if %>
<% end_loop %>
在SilverStripe默认主题上的示例
权限
默认情况下,每个可以访问“设置”部分(EDIT_SITECONFIG
权限代码)的作者都可以设置警报。您可以通过YAML配置进行自定义
NZTA\SiteBanner\Models\SiteBanner:
required_permission_codes:
- ADMIN
排序
您可以通过安装gridfieldextensionsn模块允许作者对多个警报进行排序。它将自动被代码选中。
限制
- 当使用staticpublisher时,不会触发重新发布