heyday/silverstripe-imageextension

此包的最新版本(1.0.0)没有可用的许可证信息。

提供扩展SilverStripe中图像的能力

此包的规范存储库似乎已不存在,因此该包已被冻结。

安装次数: 5,795

依赖项: 0

建议者: 0

安全性: 0

星标: 3

关注者: 28

分支: 2

公开问题: 0

类型:silverstripe-module

1.0.0 2013-07-14 02:15 UTC

This package is auto-updated.

Last update: 2024-04-29 02:35:08 UTC


README

提供扩展SilverStripe中图像的能力

问题

提供自定义图像格式化在以前被认为是容易的。我们只需扩展 Image 并添加我们的 generateX 函数。然而,随着时间的推移,我们发现这为客户带来了一些重大问题,例如与某些页面关联的图像(通过 Content 添加或通过 has_X 关联)会突然消失。其根本原因是在CMS中(例如在TinyMce中使用)使用相同的图像时,数据库记录中的 ClassName 发生了更改。

我们的下一个选择是创建一个 DataObjectDecoratorDataExtension 并在那里添加 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许可证 许可。