restruct/silverstripe-blockbase

在Elemental基础上进行各种调整和增强

安装: 12

依赖项: 0

建议者: 0

安全性: 0

星星: 0

观察者: 1

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

1.0.8 2024-01-10 13:05 UTC

This package is auto-updated.

Last update: 2024-09-10 14:36:15 UTC


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中显示块的样式/缩略图而不是图标

  1. 将以下部分复制并应用到特定项目的代码css中,以显示设计的块预览而不是图标
  2. 将私有静态$icon设置为'block-design block-section {block-name-offset}'
  3. 将堆叠块的图片添加到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