在Magento产品页使用jqZoom

Magento在产品页提供了一个简单的图片放大的功能,但效果不是很好,如果考虑使用放大镜来使用户查看产品的大图,可以考虑使用基于jQuery的插件,jqZoom便是一款优秀的放大镜插件,下面将介绍怎样把jqzoom集成到Magento中。

1 加载jQuery

因为jqZoom是基于jQuery的插件,所以我们需要在Magento中加载jQuery库,并下载jqZoom文件包,放在网站的根目录的js目录下,比如/js/jqzoom

2 建立模块

作为例子,我们在/app/code/local/MagentoBoy/Jqzoom目录下新建一个模块MagentoBoy_Jqzoom,并添加模块文件:

/app/etc/modules/MagentoBoy_Jqzoom.xml

  1. <?xml version="1.0"?>
  2. <config>
  3. <modules>
  4. <MagentoBoy_Jqzoom>
  5. <active>true</active>
  6. <codePool>local</codePool>
  7. </MagentoBoy_Jqzoom>
  8. </modules>
  9. </config>

并添加配置文件

/app/code/local/MagentoBoy/Jqzoom/etc/config.xml

  1. <?xml version="1.0"?>
  2. <config>
  3. <modules>
  4. <MagentoBoy_Jqzoom>
  5. <version>0.1.0</version>
  6. </MagentoBoy_Jqzoom>
  7. </modules>
  8. </config>

3 添加Layout文件

/app/design/frontend/default/default/layout/jqzoom.xml

  1. <?xml version="1.0"?>
  2. <layout>
  3. <catalog_product_view>
  4. <reference name="head">
  5. <action method="addItem"><type>js</type><name>jqzoom/js/jquery.jqzoom-core.js</name></action>
  6. <action method="addItem"><type>js_css</type><name>jqzoom/css/jquery.jqzoom.css</name></action>
  7. </reference>
  8. <reference name="product.info.media">
  9. <action method="setTemplate"><template>jqzoom/media.phtml</template></action>
  10. </reference>
  11. </catalog_product_view>
  12. <review_product_list>
  13. <reference name="head">
  14. <action method="addItem"><type>js</type><name>jqzoom/js/jquery.jqzoom-core.js</name></action>
  15. <action method="addItem"><type>js_css</type><name>jqzoom/css/jquery.jqzoom.css</name></action>
  16. </reference>
  17. <reference name="product.info.media">
  18. <action method="setTemplate"><template>jqzoom/media.phtml</template></action>
  19. <action method="disableGallery"/>
  20. </reference>
  21. </review_product_list>
  22. </layout>

并在config.xml中添加layout文件

  1. <config>
  2. <frontend>
  3. <layout>
  4. <updates>
  5. <jqzoom>
  6. <file>jqzoom.xml</file>
  7. </jqzoom>
  8. </updates>
  9. </layout>
  10. </frontend>
  11. </config>

4 修改template文件

/app/design/frontend/default/default/template/jqzoom/media.phtml

  1. <?php
  2. $_product = $this->getProduct();
  3. $_helper = $this->helper(‘catalog/output‘);
  4. ?>
  5. <?php if ($_product->getImage() != ‘no_selection‘ && $_product->getImage()): ?>
  6. <p class="product-image">
  7. <a href="<?php
    echo $this->helper(‘catalog/image‘)->init($_product, ‘image‘);?>" class="jqzoom" rel="gal1" title="<?php
    echo $this->htmlEscape($this->getImageLabel());?>">
  8. <img id="image" src="<?php
    echo Mage::helper(‘catalog/image‘)->init($_product, ‘thumbnail‘)->resize(265);?>" alt="<?php
    echo $this->htmlEscape($this->getImageLabel());?>" title="<?php echo
    $this->htmlEscape($this->getImageLabel());?>" style="width:265px;" />
  9. </a>
  10. </p>
  11. <p class="zoom-notice" id="track_hint"><?php echo $this->__(‘Hover
    on image to zoom in the picture‘) ?></p>
  12. <?php else: ?>
  13. <p class="product-image">
  14. <?php
  15. $_img = ‘<img
    src="‘.$this->helper(‘catalog/image‘)->init($_product, ‘image‘)->resize(265).‘"
    alt="‘.$this->htmlEscape($this->getImageLabel()).‘"
    title="‘.$this->htmlEscape($this->getImageLabel()).‘"
    />‘;
  16. echo $_helper->productAttribute($_product, $_img, ‘image‘);
  17. ?>
  18. </p>
  19. <?php endif; ?>
  20. <?php if (count($this->getGalleryImages()) > 0): ?>
  21. <div class="more-views">
  22. <h2><?php echo $this->__(‘More
    Views‘) ?></h2>
  23. <ul>
  24. <li>
  25. <a class="zoomThumbActive" href="javascript:void(0);" rel="{gallery:‘gal1‘,
    smallimage:‘<?php echo Mage::helper(‘catalog/image‘)->init($_product, ‘thumbnail‘)->resize(265);?>‘, largeimage:‘<?php echo $this->helper(‘catalog/image‘)->init($_product, ‘image‘);?>‘}" title="<?php
    echo $this->htmlEscape($this->getImageLabel());?>"><img src="<?php
    echo Mage::helper(‘catalog/image‘)->init($_product, ‘thumbnail‘)->resize(56);?>" width="56" height="56" alt="<?php
    echo $this->htmlEscape($this->getImageLabel());?>" /></a>
  26. </li>
  27. <?php foreach ($this->getGalleryImages() as $_image): ?>
  28. <li>
  29. <a href="javascript:void(0);" rel="{gallery:‘gal1‘,
    smallimage:‘<?php echo Mage::helper(‘catalog/image‘)->init($_product, ‘thumbnail‘, $_image->getFile())->resize(265);?>‘, largeimage:‘<?php echo $this->helper(‘catalog/image‘)->init($_product, ‘image‘, $_image->getFile());?>‘}" title="<?php
    echo $this->htmlEscape($this->getImageLabel());?>"><img src="<?php
    echo Mage::helper(‘catalog/image‘)->init($_product, ‘thumbnail‘, $_image->getFile())->resize(56);?>" width="56" height="56" alt="<?php
    echo $this->htmlEscape($this->getImageLabel());?>" /></a>
  30. </li>
  31. <?php endforeach; ?>
  32. </ul>
  33. </div>
  34. <?php endif; ?>
  35. <script type="text/javascript">
  36. //<![CDATA[
  37. var $j = jQuery.noConflict();
  38. $j(document).ready(function(){
  39. $j(‘.jqzoom‘).jqzoom({
  40. ‘zoomWidth‘ : 300,
  41. ‘zoomHeight‘ : 300,
  42. ‘xOffset‘ : 10,
  43. ‘yOffset‘ : 0,
  44. ‘position‘ : ‘right‘,
  45. ‘preloadImages‘ : true,
  46. ‘preloadText‘ : ‘Loading zoom‘,
  47. ‘title‘ : true,
  48. ‘lens‘ : true,
  49. ‘imageOpacity‘ : ‘0.4‘,
  50. ‘showEffect‘ : ‘show‘,
  51. ‘hideEffect‘ : ‘hide‘,
  52. ‘fadeinSpeed‘ : ‘slow‘,
  53. ‘fadeoutSpeed‘ : ‘2000‘
  54. });
  55. });
  56. //]]>
  57. </script>

清除缓存,刷新前台页面,当鼠标悬浮在产品图片上时可以看到产品的放大图。

在Magento产品页使用jqZoom

时间: 2024-10-13 03:03:35

在Magento产品页使用jqZoom的相关文章

magento商店产品页显示特价的截止日期方法

magento商店产品页显示特价的截止日期方法, 一种方法如下: template > catalog > product > view.phtml 在 <?php echo $this->getTierPriceHtml() ?>下面加上  1 Available until <?php echo $this->formatDate( $_product->getSpecialToDate() , 'full' )?>  另外也可以在price

如何修改magento产品详细页面的栏目

magento默认模板里面的产品信息页面的布局是以两栏带右侧栏显示的,那么如何修改为两栏带左侧栏或者三栏.一栏的方式显示呢?下面教大家一种很简单的方法就可以实现.下面是默认的布局预览:修改成两栏带左侧栏后的效果:修改成三栏后的效果:修改成一栏效果: 这样的效果很容易实现的,首先你需打开catalog.xml文件1.3版本app > design > frontend > default > deault > layout > catalog.xml1.4版本app &g

magento产品eav笔记【持续跟新...】

//magento把产品信息分在子表中,最顶上的表是catalog_product_entity,只包括产品的信息(SKU) //表eav_attribute,这张表在magento里为所有不 同的实体存储了所有的属性 //注意entity_type_id,每一个实体都有entity_type_id,catalog_product_entity中的记录值都是10 //在eav_entity_type表中存着所有entity实体的id值 //eav_attribute_set表中存所有属性集的值

magento产品数据库表结构分析[magento二次开发]

数据库-- 产品数据库表结构分析 product 1数据库实体表:catalog_product_entity. 属性:entity_id,entity_type_id,attribute_set_id,type_id,sku,has_options,required_options,created_at,updated_at. 2next层-->属性类型表join(entity_id),通过entity_id和catalog_product_entity关联. catalog_product_

优秀产品页设计 将访问者转化成客户

摘要:本文是对外文< Better Product Pages: Turn Visitors Into Customers >的翻译,编译内容如下: 展示产品.服务的方法是其获得成功的关键.在Web上,你留给用户的第一印象是至关重要的. 如果有人访问你的网站,一定要吸引他的注意力.在你设法吸引住他们的注意力后,你需要在几秒内介绍完你的产品.根据近几年... 本文是对外文<Better Product Pages: Turn Visitors Into Customers>的翻译,编

Magento产品描述页增加一个客户评价(Customer Reviews)的tab标签。

产品描述页默认有产品详细情况及让客户增加产品标签这二个tabs,要做到淘宝那样显示客户评价,我找到以下方法增加一个客户评价tab: 1. 打开模版路径 layout 目录下的 review.xml 文件, 在页面最下的</layout>之上,添加如下代码: <catalog_product_view> <reference name="product.info.tabs"> <block type="review/form"

Magento产品描述页增加一个tab标签。

比如想在产品详细页加入一个发货方式/shipping methods 标签, 可以简单地这样做: 打开模版文件目录layout, 编辑local.xml <catalog_product_view> <reference name="product.info.tabs"> <block type="review/form" name="shipping.methods" as="shipping_metho

magento 全页缓存

全页缓存能极大的提高网页的响应速率,但magento社区的商用全页缓存工具都很贵,但是有一款免费的叫ezzoom,虽然免费但是功能强大,能够对产品.分类.特定模块进行缓存,还支持页面某些部分的动态加载 同时也因为是免费的,没有技术支持,推荐使用之前一定要研究下它的源码 1.使用方法 跟普通模块安装没啥区别,唯一不同的是安装后需要的网站入口文件index.php中的Mage::run($mageRunCode, $mageRunType);之前添加require_once(dirname(__FI

夺命雷公狗ThinkPHP项目之----企业网站23之网站前台二级分类的跳转(URL跳转到列表页或产品页)

我们现在开始做实现我们的二级菜单如何跳转到指定的列表页或者产品也呢?? 我们分享下数据库情况: 我们的数据库里提前给我们预留了一个cate_type的字段,那么我们可以让这个字段进行判断,从而遍历出指定的数据: 顶级栏目判断出结果后二级栏目也可以从而判断出结果........