micschk/silverstripe-cmstweaks

此包已被废弃且不再维护。作者建议使用restruct/silverstripe-admintweaks包。

各种管理界面调整与增强

安装: 23

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 3

分支: 2

开放问题: 8

语言:SCSS

类型:silverstripe-vendormodule

2.2.9 2024-08-21 12:55 UTC

README

此模块是Restruct提供的一套小型Silverstripe功能与样式调整的便携包。

目前它已部分更新到SS4,大部分功能已被禁用,将在项目中需要时重新激活。

功能

  • ImagePlaceholder功能(SVG)
  • 在SiteConfig中提供联系与社会媒体字段(可选/可配置)
  • 在SiteConfig中提供原始html head/body标签字段(可选/可配置)
  • 在SiteConfig中提供浏览器-chrome颜色选择器字段(可选/可配置)
  • 提供全局$themeDirResourceURL($ThemeDir替代,例如:{$themeDirResourceURL('my-theme')}/videos/vid-{$RandomNumber}.mp4
  • SSViewer_ExtraIterators(例如"col-2-of-4"):GroupSize,PosInGroup,FirstOfGroup,LastOfGroup,FirstLastOfGroup,GroupOfGroups
  • CacheHelpers::cached_http_request(),cached_json_request()和cached_jsonLD_request()
  • GeneralHelpers::safelyGetProperty()和download_and_save_asset()
  • PageHelperExtension向Page中添加各种功能
  • ScheduledMethodCall类用于使用QueuedJobs模块(如果已安装)按计划调用任何方法
  • FormFieldBootstrapExtension用于简单地将.form-control类添加到表单字段中(可选)
  • FormFieldTweaksExtension用于仅向表单容器添加类和属性(结合使用->setFieldHolderTemplate('FormFieldTweaks_holder'))
  • EnforceCMSPermission特质使DataObjects在CRUD操作时需要CMS访问凭证
  • GridFieldConfigs::editable_orderable()
  • SelectiveLumberjack类(修复Lumberjack以不筛选列表视图,并考虑hide_from_cms_tree(核心功能))
  • 设置Session.cookie_secure为true
  • 默认情况下使UserDefinedForm不保存到服务器(GDPR)
  • 设置略高的图像质量值并激活WEBP格式(如果已安装webmen/silverstripe-webp-images)
  • 激活MimeUploadValidator(如果已安装silverstripe/mimevalidator)
  • 设置默认("cacheblock")缓存为24小时,并创建1小时的"appcache"缓存
  • 包含一些电子邮件配置助手(见下文"电子邮件配置")
  • 设置一些图像操作回退,以防方法缺失(旧版、焦点、裁剪器)
  • 设置略微更安全的密码策略
  • 激活googlesitemaps(如果已安装模块)
  • 注册FeaturedImage和CurrentYear短代码(如果已安装短代码模块)
  • 为常见页面类型添加时尚的页面图标(字体图标)
  • (Bigfork:)隐藏无法创建的页面类型和客户很少使用的管理部分
  • 在导航中隐藏CampaignAdmin和ReportAdmin(客户很少使用)
  • 将RedirectedURLAdmin,ArchiveAdmin,QueuedJobsAdmin,SubsiteAdmin和SiteConfig导航按钮分组到"高级"下拉菜单中(如果已安装symbiote/silverstripe-grouped-cms-menu)
  • 各种Block(Elemental)调整(+在admin/blocktypeicons处的块图标/缩略图预览路由)
  • 修复使可编辑网格字段中的空/未选中复选框提交数据的问题(例如,取消设置)
  • 解决当它们在对象上没有1:1的名称/关系时,$form->loadData()会取消选中复选框的问题(将属性data-setactivecheckboxvalues设置为将值强制应用于checkboxsetfields)
  • ...

未测试/插入的功能

将一些内容快速复制到该模块以实现便携性,但在实际使用之前可能需要进行一些调整/泛化

  • 带有IP验证的IpAddressField表单字段(目前可能仅在前端可用,不确定)
  • DBNullableInt和MySQLSchemaManagerNullable
  • ...

备注

  • 旧版.margin-left和.small表单字段样式->(v4)仅$fie

SiteConfig ... 配置

设置是否装饰siteconfig

# NOTE: this extension adds various extra fields & functionality to siteadmin, activate on a per-project basis
SilverStripe\SiteConfig\SiteConfig:
  extensions:
    - Restruct\Silverstripe\AdminTweaks\Extensions\SiteConfigExtension
  # move 'access' fields to main tab & remove 'access' tab
  rearrange_access_fields: false # (default true)
  enable_browser_color_theme_field: false # (default true)
  enable_subnav_activation_field: false # (default true)
  enable_contact_social_media_fields: false # (default true)
  # use in templates: {$SiteConfig.ExtraHTML_HeadStart.RAW} to include extra html
  enable_raw_head_body_fields: false # (default true)
  # deactivate container classes (or set array to override)
  theme_container_classes: false # default bootstrap container classes

图像占位符

直接在模板中包含SVG

<% include ImagePlaceholder W=180, H=50, Label='logo', AddClass='rounded' %>

直接包含SVG

$ImagePlaceholder(180, 50, 'logo', '', 'rounded')

将SVG作为img src(base64数据URI)包含在内

<img class="rounded" src="$ImagePlaceholder(180, 50, 'logo', true)" alt="logo" width="180" height="50">

电子邮件配置

在.env(环境)中定义电子邮件配置以自动应用

# EMAIL.yml
APP_SYSTEM_EMAIL_SENDER="" # eg System X/Y
APP_SYSTEM_EMAIL_ADDRESS="" # eg noreply@host.tld

# SMTP mailserver, NOTE: SwiftMail 'ssl' => SMTP over SSL/TLS / 'tls' => STARTTLS
# LIVE/Default: Mailgun servers (listen on ports 25, 465 (SSL/TLS), 587 (STARTTLS), and 2525)
APP_SMTP_HOST=""
APP_SMTP_PORT=""
APP_SMTP_ENCRYPTION=""
APP_SMTP_USERNAME=""
APP_SMTP_PASSWORD=""

# Send error logs via email
APP_LOG_MAIL_RECIPIENT=""
APP_LOG_MAIL_SUBJECT=""
APP_LOG_MAIL_SENDER=""
APP_LOG_MAIL_LEVEL=""

在管理员UI(Elemental)中显示块设计/缩略图而不是图标

  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;
  }}
}

## TODO/REACTIVEATE/UPDATE for SS4:

- JS: Add optional loading feedback overlay to buttons
- JS: Inline gridfieldeditablecolumns datepicker fixes
- JS: Advanced search toggle for modeladmins
- Check & improve