我想从左栏中的product.info.media
移动catalog.xml
块以获取所有产品视图。
要实现这一点,我已在我的local.xml
文件中添加了两行:
<catalog_product_view>
<reference name="left">
<block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
</reference>
<reference name="product.info">
<action method="unsetChild"><child>media</child></action>
</reference>
</catalog_product_view>
media.phtml与1.7.0.2版magento中的默认文件二进制相同。
奇怪的是,网页上的产品图片有以下代码:
<img id="image" src="path/to/image.jpg" alt="" title="" style="position: relative; left: 0px; width: 220px; top: 215px;">
为什么要为顶部定义样式?!由于此样式在元素内定义,我甚至无法用css更改它。有人能解释一下magento的这种行为吗?
media.phtml中创建此内容的行如下所示:
$_img = '<img id="image" src="'.$this->helper('catalog/image')->init($_product, 'image').'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />';
echo $_helper->productAttribute($_product, $_img, 'image');
他们引导我到app/code/core/Mage/Catalog/Helper/Output.php
定义了productAttribute函数。但为什么天堂缘故是最顶级的风格?这根本没有意义。如果我想设置它,我会使用css。
提前致谢。
答案 0 :(得分:0)
我刚刚花了3个小时的时间来解决这个问题...解决方案?元素样式(包括“top”)设置在(drumroll) /js/product.js 中。这是默认图像缩放操作的一部分。希望这能帮助那些像我一样通过谷歌发布这篇文章的人。
在magento 1.7.2中, /js/product.js 的第263行显示:
this.imageEl.style.top = this.imageY+'px';
作为一个快速黑客,您可以对其进行评论,但我强烈建议您调整适合您需要的缩放JavaScript功能。