nswdpc/silverstripe-grid-helpers

允许编辑器根据您的主题指定元素列表和元素的渲染方式

安装次数: 3,230

依赖项: 4

建议者: 0

安全性: 0

星级: 0

关注者: 2

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

v1.0.0 2024-05-10 07:23 UTC

This package is auto-updated.

Last update: 2024-09-10 08:13:49 UTC


README

本模块为Elemental元素提供了一些基本的网格/显示选择,可供内容编辑器访问。

功能

  • ElementChildGridExtension:将列选择应用于包含子项的元素(例如,ElementList,包含图片的画廊)
  • ElementDisplayChoiceExtension:将显示选项应用于元素,以供模板使用。
  • ElementHasChildrenExtension:将布局决策应用于包含子项的元素(例如,ElementList,出版物列表)

默认网格行为是使用NSW设计系统网格,它与Bootstrap非常相似。您可以通过配置修改此设置。

配置

使用Configuration模型设置基本网格定义并返回用作CSS类的字符串。

您可以根据需要修改值以使用其他网格系统,例如,使用Bootstrap网格

NSWDPC\GridHelper\Models\Configuration:
  grid_prefix: 'col'

或者,对于Reflex Grid

NSWDPC\GridHelper\Models\Configuration:
  grid_prefix: 'col'
  grid_mapping:
    xs: 'xs'
    sm: 'sm'
    md: 'md'
    lg: 'lg'
    xl: 'xlg'

使用Injector提供您自己的配置模型 - 只需记住扩展NSWDPC\GridHelper\Models\Configuration

模板化

使用默认的ElementalList模板,您的模板可能看起来像这样

<% if $ShowTitle && $Title %>
<h2>{$Title}</h2>
<% end_if %>
<% if $Elements.Elements %>
    <div class="grid">
        <% loop $Elements.Elements %>
            <%-- note the scope resolution here --%>
            <div class="{$Up.Up.ColumnClass}">
                {$Me}
            </div>
        <% end_loop %>
    </div>
<% end_if %>

以上将使用所选的CardColumns值。您可以从模板传递一个值以覆盖在CMS中做出的选择

<%-- force a two column grid --%>
<% loop $Items %>
<div class="{$Up.Up.ColumnClass(2)}">
    {$Me}
</div>
<% end_loop %>

在复杂布局中,如果通过<% include ... %>将选项传递到模板中,可以使用变量

<% include Path/To/Some/Template OverrideColumns=4 %>

<%-- Template.ss: set override based on value provided --%>
<% loop $Items %>
<div class="{$Up.Up.ColumnClass($Up.OverrideColumns)}">
    {$Me}
</div>
<% end_loop %>

显示选择

ElementDisplayChoiceExtension可以应用于任何与内容相关的元素,以允许内容编辑器在一定程度上选择内容的显示方式。

您的主题/模板将根据提供的值确定如何处理此内容。

假设ElementDisplayChoiceExtension已应用于ElementContent

<%-- ElementContent.ss --%>
<% if $Subtype == 'callout' %>
    <%-- render as a callout --%>
<% else_if .... %>

<% end_if %>

本模块提供了一些默认的“子类型”供选择,您也可以配置自己的。

列表中的显示一致性

如果相关元素是ElementalList的子元素,显示选择将从CMS中删除,并且应遵守模板中的列表显示选择。这是为了避免,例如,由不同样式的元素内容组成的网格。

列表元素以及任何具有ElementHasChildrenExtension的其他Element将获得一个列表类型内容样式字段,用于定义子项的显示方式。可选择的默认类型大多来自最常见的设计/组件系统(例如,卡,内容块,选项卡,链接列表,列表项)。

模板化

与所有Silverstripe一样,前端/模板实现完全由您决定。本模块仅提供一些关于如何显示的提示。您的主题/模板应该实现您选择的用户界面/组件库的解决方案。

维护者

错误追踪器

我们欢迎在Github问题跟踪器上对本项目的错误报告、拉取请求和功能请求。

在打开新问题之前,请查看https://github.com/nswdpc/silverstripe-grid-helpers/blob/HEAD/./code-of-conduct.md

安全性

如果您发现本模块存在安全问题,请首先通过digital[@]dpc.nsw.gov.au发送电子邮件,详细说明您的发现。

开发和贡献

如果您想为此模块做出贡献,请确保您发起一个拉取请求并与模块维护者进行讨论。

在完成拉取请求之前,请查阅行为准则