restruct / silverstripe-blockbase
在Elemental基础上进行各种调整和增强
Requires
README
此模块作为Elemental的基础,为Restruct的基于块的工程项目服务。
取消嵌套块的.container填充(针对第一级嵌套)
如果您的项目已经将块包裹在.container中,则块的.container将具有双重填充。以下CSS取消此设置(基于一个将所有内容包裹在子导航和内容.col中的项目,根据您的具体项目进行修改)
.blocks-container { // unset padding/margin of (second level ) .container if contained within .subnav-slot-* (before/after) &.subnav-slot-before, &.subnav-slot-after { & > .block-item-wrapper > .container > .row > [class*="col"] > .block-item-wrapper > .container { padding: 0; // .row & .col* should remain unchanged as there may be multiple columns with a block } } }
功能
- 各种块(Elemental)调整(+在
admin/blocktypeicons
处的块图标/缩略图预览路由) - ...
在Elemental的管理UI中显示块的样式/缩略图而不是图标
- 将以下部分复制并应用到特定项目的代码css中,以显示设计的块预览而不是图标
- 将私有静态$icon设置为'block-design block-section {block-name-offset}'
- 将堆叠块的图片添加到app/client中(.block-name-offset设置多个堆叠在一个图像中的偏移量)
i.block-section, button.block-section:before { background-image: url(~app/client/imgs/block-group-designs_stacked.png); background-position: 0 0; } i.block-section, button.block-section { &.block-name-offset {&, &:before { background-position: 0 -128px; }} &.block-othername-offset {&, &:before { background-position: 0 -28px; }} }
注意
模板关系
DNADesign/Elemental/Models/ElementalArea.ss模板遍历每个元素控制器实例。每个控制器实例将渲染$ElementHolder,它代表包含在holder div中的元素。包装div是ElementHolder.ss模板。
样式布局变体
可以通过YAML或private static $styles
设置一个样式布局变体列表,第一个是默认的。
Restruct\Silverstripe\BlockBase\Blocks\BlockContent: styles: single-col-wide: 'Single wide column layout' single-col-narrow: 'Single narrow column layout' double-col-equal: 'Two equal-width columns layout'
所选的$StyleVariant将在模板中可用,并作为类包含在包装元素上(DNADesign/Elemental/Layout/BlockHolder.ss)。它也可以用来在不同的模板之间切换,例如BlockType.ss / BlockType_single-col-wide.ss / 等。
样式(额外类)选项
可以通过激活一个或多个额外的CSS类来控制块持有者的进一步样式变体。选项(例如基于主题)可以通过YAML在项目级别设置,或直接在块类上(private static $style_options
)。
Restruct\Silverstripe\BlockBase\Blocks\BlockContent: style_options: - 'light' - 'dark'
高级配置
高级配置提示:https://github.com/silverstripe/silverstripe-elemental/blob/4/docs/en/advanced_setup.md
允许/不允许子站点的特定块类型
由Restruct\Silverstripe\BlockBase\Extensions\SubsitesPageExtension
处理
Page: # # Example: disallow any blocks on subsites # subsites_allowed_elements: false # # Example: allow specific elements on subsites # subsites_allowed_elements: # - Restruct\Silverstripe\BlockBase\Blocks\BlockContent # # Example: DISallow specific elements on subsites # subsites_disallowed_elements: # - Restruct\Silverstripe\BlockBase\Blocks\BlockContent