jellygnite/silverstripe-enhance

对 SilverStripe 安装的各项改进。

安装: 56

依赖: 1

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 1

开放问题: 0

类型:silverstripe-vendormodule

4.0.7 2022-04-19 01:08 UTC

This package is auto-updated.

Last update: 2024-09-19 06:13:51 UTC


README

简介

此包包含对 Silverstripe 安装的各项改进。

需求

  • SilverStripe ^4.0

安装

composer require jellygnite/silverstripe-enhance

注意

获取类基本名称

可用于模板中获取 PageClass 的简化版本。例如:

<html class="$ClassBasename">

图片亮度

偶尔当你使用图片作为幻灯片背景或类似情况,并且你想在图片上叠加文字时,了解图片是亮是暗可以让你选择相应的文字颜色。

此扩展向图片表中添加了一个新的列 亮度,用于存储图片的亮度。

你可以在模板中调用 $IsDark 或 $IsLight 函数。例如:

<li class="slide<% if $Image.IsDark %> invert<% end_if %>">

SVG 文件

使用 File::class 创建对象而不是 Image::class,因为 SVG 文件与二进制数据图像文件不同。

private static $has_one = [
  "Logo" => File::class
];

然后,当向 FieldsList 添加上传字段时,仅允许普通图片和新的类别 'image/unsupported'。这将允许用户上传标准图像文件和 SVG 文件。

$uploadField->setAllowedFileCategories(['image/supported','image/unsupported']);

然后你可以在模板中使用所有图像处理函数来引用该图片。你不需要先检查它是否是 SVG。任何图像处理函数都将被忽略,并将原始 SVG 返回在 标签中。

如果你允许 SVG 上传,为了避免恶意 SVG 文件中的脚本执行,最好在模板中使用。最好限制上传只允许管理员,即不要在前端启用 SVG 上传。

$Logo.ScaleWidth(250)
<img src="$Logo.ScaleWidth(250).URL" alt="$Logo.Title.ATT">

检查一个图像是否是 SVG。

<% if $Logo.IsSVG() %>do something<% end_if %>

SiteConfig 扩展

以下字段被添加到设置中。

    private static $db = [
		"AdministratorEmail" => "Varchar(254)",
		"Phone" => "Varchar(50)",
		"Fax" => "Varchar(50)",
		"Email" => "Varchar(254)",
		"Company" => "Text",
		"ABN" => "Varchar(50)",
		"Address" => "Text",
		"Postal" => "Text",
		"OpeningHours" => "Text",
		"MapAddress" => "Varchar(254)",		
		"Latitude" => "Decimal(9,5)",
		"Longitude" => "Decimal(9,5)",
		"Zoom" => "Int",
		
		"FacebookURL" 	=> "Varchar(255)",
		"TwitterURL" 	=> "Varchar(255)",
		"LinkedInURL" 	=> "Varchar(255)",
		"InstagramURL" 	=> "Varchar(255)",
		
		"MapURL" 	=> "Varchar(255)",
    ];
    
	private static $has_one = [
	    "Logo" => File::class,
	    "ExtraLogo" => File::class,
	    "DefaultBanner" => Image::class
	]

映射嵌入代码方法允许你使用 Google Maps API 而不是嵌入简单的 Google 地图 iframe。大多数情况下这已经足够,因此可以节省为客户设置账户的麻烦。

地图基于 MapAddress 中输入的数据创建。或者可以使用经纬度添加精确位置。

<div id="gmap">
$SiteConfig.MapEmbedCode
</div>

WebP 支持

添加了对 WebP 图像的支持。这仅在 GD 或 ImageMagick 中可用 WebP 函数时才有效。

检查一个图像是否是 WebP。

<% if $Logo.IsWebP() %>do something<% end_if %>

TODO:CMS 中的缩略图。我认为它在 asset-admin/client/dist/js/bundle.js 中。