Magento的事件机制
六 27th
比如,当后台更新或新增产品图片时,希望能生成一个自定义尺寸的缩略图。一般做法是,修改产品的save方法。
但是Magento事件模型机制提供了另外一个选择。当产品存储之前,Magento抛出名字为catalog_product_prepare_save的事件,我们只要在自己的模块中捕获这个事件就可以了。
config.xml文件关键代码:
- <config>
- <global>
- <events>
- <catalog_product_prepare_save>
- <observers>
- <cartz_catalog_image_observer>
- <type>singleton</type>
- <class>manager/image_observer</class>
- <method>zoom_out_to_middle_size</method>
- </cartz_catalog_image_observer>
- </observers>
- </catalog_product_prepare_save>
- </events>
- </global>
- <config>
复制代码
下面是观察者类的代码:
- <?php
- class Cartz_Manager_Model_Image_Observer{
- public function __construct(){
- }
- public function zoom_out_to_middle_size($observer){
- $event = $observer->getEvent();
- $product = $event->getProduct();
- $imageFullPath = Mage::getBaseDir(‘media’).DS.’catalog’.DS.’product’ . $product->getImage();
- $imageFullPath = preg_replace(‘/\//’, DS, $imageFullPath);
- $cartzImage = Mage::getModel(‘manager/image_zoom’, $imageFullPath);
- $filename = $cartzImage->resize();
- $product->setMiddleImage($filename);
- return $this;
- }
- }
复制代码
Mage::getModel(‘manager/image_zoom’, $imageFullPath) 这个类包装了GD库实现尺寸缩放。
这时再运行后台产品编辑存储,看看是否在图片目录下生成了一个上传图片的缩略图。
出处: 马丁博客[http://www.blags.org/]
本文链接地址: http://www.blags.org/magento-shijian-jizh/
原创文章,转载请注明出处,否则视为侵权。
你同时应该掌握的知识
- magento 性能优化 - (7 comments)
- mysql myisam innodb 区别 - (1 评论)
- 基于Zend Framework开源项目 - (1 评论)
- php 5.3 安装magento方法 - (没有评论)
- シンセン日本語サイト開発 - (没有评论)
- 在Hostmonster上快速安装Magento最新版 - (没有评论)
- 制作你自己的Magento主题-Building Your Theme - (没有评论)
- 关闭magento后台通知信息 - (没有评论)
- web 兼职开发 - (1 评论)
posted 7 months ago
今天增加产品折扣率排序,正好用到Magento的事件机制。magento真正的灵活扩展性好!