nswdpc / silverstripe-grid-helpers
允许编辑器根据您的主题指定元素列表和元素的渲染方式
Requires
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- phpunit/phpunit: ^9.5
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发送电子邮件,详细说明您的发现。
开发和贡献
如果您想为此模块做出贡献,请确保您发起一个拉取请求并与模块维护者进行讨论。
在完成拉取请求之前,请查阅行为准则。