nzta/silverstripe-sitebanner

通过CMS激活的全站横幅

安装数: 24,185

依赖者: 0

建议者: 0

安全性: 0

星标: 9

关注者: 9

分支: 12

开放问题: 2

类型:silverstripe-vendormodule

4.0.0 2023-04-16 23:26 UTC

This package is auto-updated.

Last update: 2024-09-16 05:49:38 UTC


README

允许CMS作者创建全站横幅,以便无论用户查看哪个页面,都能提醒他们重要信息。

功能

  • 主题模板
  • 配置警报类型(默认为“信息”、“警告”和“警报”)
  • 多个并发警报
  • 设置警报的开始/结束日期
  • 权限控制
  • CMS UI控件和标签的本地化
  • 通过版本控制预览和发布
  • CMS用户可以将横幅设置为“可关闭”,允许用户在阅读后隐藏横幅。
  • 富文本编辑(插入链接和图片)
  • 可选:通过gridfieldextensions进行排序
  • 支持子站

屏幕截图

CMS Preview

要求

  • 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默认主题上的示例

Info styling

Warning styling

Alert styling

权限

默认情况下,每个可以访问“设置”部分(EDIT_SITECONFIG权限代码)的作者都可以设置警报。您可以通过YAML配置进行自定义

NZTA\SiteBanner\Models\SiteBanner:
  required_permission_codes:
    - ADMIN

排序

您可以通过安装gridfieldextensionsn模块允许作者对多个警报进行排序。它将自动被代码选中。

限制