【发布时间】:2012-04-30 15:58:19
【问题描述】:
当管理员将图像添加到 Magento 中的 cms 页面,然后调整图像大小时: 那么前端的图像会保留其原始大小,但会进行缩放。
有什么办法可以在保存页面的时候把图片保存成更小的尺寸?
【问题讨论】:
标签: image magento content-management-system resize
当管理员将图像添加到 Magento 中的 cms 页面,然后调整图像大小时: 那么前端的图像会保留其原始大小,但会进行缩放。
有什么办法可以在保存页面的时候把图片保存成更小的尺寸?
【问题讨论】:
标签: image magento content-management-system resize
任何默认的 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" />
祝你好运!
【讨论】: