restruct / silverstripe-admintweaks
各种管理员调整与增强
2.2.9
2024-08-21 12:55 UTC
Requires
Suggests
- axllent/silverstripe-cms-tweaks: Some complemental tweaks by Axllent
Replaces
- micschk/silverstripe-cmstweaks: 1.*
- restruct/silverstripe-cmstweaks: *
This package is auto-updated.
Last update: 2024-09-16 06:48:14 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()
- 通过PageHelpersExtension添加到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短代码(如果已安装短代码模块)
- 为常见页面类型添加时尚的页面图标(font awesome图标)
- (Bigfork:)隐藏无法创建的页面类型和很少使用的管理员部分
- 在导航中隐藏CampaignAdmin和ReportAdmin(很少由客户使用)
- 将RedirectedURLAdmin、ArchiveAdmin、QueuedJobsAdmin、SubsiteAdmin和SiteConfig导航按钮分组在"高级"下拉菜单下(如果已安装symbiote/silverstripe-grouped-cms-menu)
- 各种Block(Elemental)调整(+ block图标/缩略图预览路由在
admin/blocktypeicons
) - 修复使editablegridfields中的空/未勾选的复选框提交数据(例如unset)的问题
- 解决当复选框没有在对象上1:1字段名/关系时,由 $form->loadData() 取消复选框设置的问题(设置属性data-setactivecheckboxvalues将强制将值设置到checkboxsetfields)
- ...
未测试/临时添加的功能
将一些内容快速复制到本模块中以提高便携性,但在实际使用前可能需要进行一些调整/通用化
- 带有IP验证的IpAddressField表单字段(目前可能只能在前端使用,不确定)
- DBNullableInt & MySQLSchemaManagerNullable
- ...
备注
- 旧版 .margin-left & .small 表单字段样式 -> (v4) just $field->removeExtraClass('stacked')->setRows(15)
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)中显示块设计/缩略图而不是图标
- 将以下部分复制并适应到特定项目的代码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; }} } ## 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