4

当管理员将图像添加到 Magento 中的 cms 页面,然后调整图像大小时:然后前端的图像保留其原始大小,但已缩放。

保存页面时是否有任何解决方案可以将图像保存为较小的尺寸?

4

1 回答 1

3

任何默认的magento都不会发生这种情况。但是,您可以组合一个模块来观察您的 cms 页面保存的数据。以这个事件为例:

cms_page_prepare_save

带参数:

array(’page’ ⇒ $model, ‘request’ ⇒ $this→getRequest())

您可以仅从 3 个文件开始创建模块:

/app/etc/Electricjesus_Cms.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Electricjesus_Cms>
            <active>true</active>
            <codePool>local</codePool>
        </Electricjesus_Cms>
    </modules>
</config>

/app/code/local/Electricjesus/Cms/etc/config.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <Electricjesus_Cms>
            <version>0.1.0</version>
        </Electricjesus_Cms>
    </modules>
    <global>
        <models>
            <cms>
                <class>Electricjesus_Cms_Model</class>
            </cms>
        </models>
        <events>
            <cms_page_prepare_save>
                <observers>
                    <prepareSave>
                        <class>cms/observer</class>
                        <method>prepareSave</method>
                    </prepareSave>
                </observers>
            </cms_page_prepare_save>
        </events>        
    </global>
</config>

/app/code/local/Electricjesus/Cms/Model/Observer.php:

<?php
class Electricjesus_Cms_Model_Observer {
    function prepareSave ( $observer ) {
       $request = $observer->getRequest();
       $params = $request->getParams();
       // scan the request and params for stuff related with the images.. 
       // find out scaling and pass into a good resizer like TimThumb or
       // Zend_Filter_ImageSize etc.
    }
}

虽然上述答案并不完整,但这是一个很好的起点。每当我有更多时间时,我都会尝试开发一个完整的解决方案。

替代方法:

由于我在上面提到了TimThumb,您还可以在您的 magento 根目录中部署它,并开始通过 HTML 编辑器而不是通常的 WYSIWYG 编辑器添加您的图像。如果在您的网站根目录上安装 thumb.php,您可以像这样使用它:

<img src="/thumb.php?src=images/image.jpg&w=100&h=50" alt="Hey" />

祝你好运!

于 2012-04-20T00:07:34.617 回答