Magento 列表布局 XML
我正在尝试让我的模块用我自己的新模块替换类别列表页面上的列表和网格视图上的“媒体”部分,如果法师知识中存在漏洞,则其布局 xml 如此,如果有人可以提供帮助:-) 我正在使用,
<layout>
<catalog_category_view>
<reference name="head">
<action method="addItem"><type>skin_js</type><name>js/imageover.js</name></action>
</reference>
<reference name="product_list">
<block type="catalog/product_view_media" name="product.info.media" as="media" template="lewis/imageover/media.phtml"/>
</reference>
</catalog_category_view>
</layout>
但不起作用? :s 调试工具栏显示我的布局正在被调用,但尚未进行更改。
编辑:好的,在下面帖子的一些帮助下,我让它读取我的布局,但结果是在category_list页面上Magento不使用媒体模板,图像调用是在list.phtml文件中进行的,所以改变的唯一方法它似乎是要替换整个模板文件。 (这看起来很极端!)是否有另一种方法来替换类别列表页面上的图像?
I am trying to get my module to replace the 'media' section on list and grid view on category list pages with my own new one, if there is a hole in Mage knowledge its the layout xml so if someone could help :-) I am using,
<layout>
<catalog_category_view>
<reference name="head">
<action method="addItem"><type>skin_js</type><name>js/imageover.js</name></action>
</reference>
<reference name="product_list">
<block type="catalog/product_view_media" name="product.info.media" as="media" template="lewis/imageover/media.phtml"/>
</reference>
</catalog_category_view>
</layout>
but it's not working? :s debug toolbar shows my layout is being called but the changed aren't being made.
Edit: Ok with some help from the post below I got it to read my layout, but turns out on the category_list page Magento doesn't use media template the image call is made in the list.phtml file, so the only way to change it appears to be to replace that whole template file. (which seems very extreme!) is there another way to replace the image on the category list page?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您在这里所做的就是使用模板有效地重新实例化媒体块。如果您的更改仅基于模板,则只需
布局中的现有块实例并调用<模板>lewis/imageover/media.phtml
。如果您的模块具有自定义块类,则需要使用模块的块类组。有关类组表示法、工厂方法等的更多信息,请参阅 Alan Storm 关于 Magento 配置的文章。What you've done here is effectively reinstantiate the media block with your template. If your changes are solely template-based, you can just
<reference name="product.info.media">
the existing block instance from the layout and call<action method="setTemplate"><template>lewis/imageover/media.phtml</...>
. If you have your module has a custom block class, you'll need to use your module's block class group. For more on class group notation, the factory method, etc, see Alan Storm's article on the Magento config.