我正在将Magento 1.7用于网上商店,我想在目录上方显示一些特定的静态块。因此,当客户转到菜单并单击例如类别A并在点击制造商B之后,目录产品列表上方应该有一个文本块,其中包含制造商特定信息。当他们点击制造商C时,应该有其他文本,然后是制造商B.
我认为最简单的方法是为所有制造商制作静态块,并制作PHP脚本。那可能吗?或者我可以用另一种方式做到这一点吗?
提前谢谢!
亲切的问候,
让保
答案 0 :(得分:0)
如果您想自己动手,可以实现观察者,检查分层导航中应用了哪些过滤器,并将块添加到content
块。
然后,您的块将实现您想要为制造商显示不同信息的任何逻辑。
无论分层类别的FullActionName是什么,我都会尝试controller_action_layout_generate_blocks_after
,controller_action_layout_render_before
或controller_action_layout_render_before_'.$this->getFullActionName()
: - )
关于观察者,您可以在英寸处找到事物:http://inchoo.net/category/ecommerce/magento/events-observers/
为了获得选择制造商的信息,我认为有两种方法:
Mage::app()->getRequest()->getParam()
获取信息$layout->getBlock('catalog.leftnav')
并以某种方式从块中提取信息之后你可以添加你的块。
阅读本文后:Magento: Add content block at the end of the structual block "content"
我建议引入自己的更新句柄(因为我不知道,如何将块添加到content
的开头)。使用您自己的句柄,您可以使用before="-"
如下所述: http://www.classyllama.com/magento/add-custom-layout-handles-e-g-parent-categories
您可以通过$layout->getUpdate()->addHandle('manufacturer_informations');
我会在观察者中尝试这样的事情:
if($category = Mage::registry('current_category')) {
if($category->getName() == 'MyBrand') { // ot maybe $category->getId() == ...
//instantiate some $block
}
$layout->getBlock('content')->insert($block, 'brand-information');
}
答案 1 :(得分:0)
这是免费扩展名单。只需下载它们,您就可以根据需要更改/升级编辑它。
我希望你能得到这个想法,我认为当你有什么可以开始的时候很容易理解。