heyday / silverstripe-imageextension
此包的最新版本(1.0.0)没有可用的许可证信息。
提供扩展SilverStripe中图像的能力
此包的规范存储库似乎已不存在,因此该包已被冻结。
1.0.0
2013-07-14 02:15 UTC
Requires
- composer/installers: ~1.0
This package is auto-updated.
Last update: 2024-04-29 02:35:08 UTC
README
提供扩展SilverStripe中图像的能力
问题
提供自定义图像格式化在以前被认为是容易的。我们只需扩展 Image
并添加我们的 generateX
函数。然而,随着时间的推移,我们发现这为客户带来了一些重大问题,例如与某些页面关联的图像(通过 Content
添加或通过 has_X
关联)会突然消失。其根本原因是在CMS中(例如在TinyMce中使用)使用相同的图像时,数据库记录中的 ClassName
发生了更改。
我们的下一个选择是创建一个 DataObjectDecorator
或 DataExtension
并在那里添加 generateX
方法,但这也有其自身的烦恼。
为了实现这一点,您需要做如下操作
class CustomImage extends DataExtension
{
public function MyCustomFormat()
{
return $this->owner->getFormattedImage('MyCustomFormat');
}
public function generateMyCustomFormat(Image_Backend $backend)
{
return $backend->fittedResize(80, 110);
}
}
注意需要定义 MyCustomFormat
以及 generateMyCustomFormat
。当您有很多格式化函数时,这会变得有些丑陋。不好。
解决方案
为了避免这种情况,您现在可以使用 heyday/silverstripe-imageextension
。这将允许您简单地在您的扩展中定义 generateX
方法。
安装(使用composer)
$ composer require heyday/silverstripe-imageextension
用法
class CustomImageExtension extends \Heyday\SilverStripe\ImageExtension { public function generateTwoColumn(Image_Backend $backend) { $backend->resizeByWidth(300); return $backend; } }
mysite/_config/config.yml
Image: extensions: - CustomImageExtension
##许可证
SilverStripe Image Extension 采用 MIT许可证 许可。