1

我正在为网上商店使用 Magento 1.7,我想在目录上方显示一些特定的静态块。因此,当客户进入菜单并单击例如类别 A,然后单击制造商 B 时,目录产品列表上方应该有一个带有制造商特定信息的文本块。此外,当他们点击制造商 C 时,应该有其他文本,然后是制造商 B。

我认为最简单的方法是为所有制造商制作静态块,并制作一个 PHP 脚本。那可能吗?或者我可以用另一种方式做到这一点吗?

先感谢您!

亲切的问候,

让-保罗

4

2 回答 2

0

如果你想自己做,你可以实现一个观察者,检查在分层导航中应用了哪些过滤器,然后将你的块添加到content块中。

然后,您的块实现您想要为制造商显示不同信息的任何逻辑。

我会尝试controller_action_layout_generate_blocks_aftercontroller_action_layout_render_before或者controller_action_layout_render_before_'.$this->getFullActionName()分层类别的 FullActionName 是什么:-)

关于观察者,您可以在 inchoos 找到相关内容:http: //inchoo.net/category/ecommerce/magento/events-observers/

要获得选择制造商的信息,我认为有两种方法:

  1. 从 get 获取信息Mage::app()->getRequest()->getParam()应该可以工作
  2. 获取布局,然后$layout->getBlock('catalog.leftnav')以某种方式将信息拉出块

之后你可以添加你的块。

读完后:Magento:在结构块“内容”的末尾添加内容块

我建议引入您自己的更新句柄(因为我不知道如何将块添加到开头content)。用你自己的手柄,你可以使用before="-"

并如此处所述:http: //www.classyllama.com/magento/add-custom-layout-handles-eg-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');
}
于 2013-01-01T14:04:12.963 回答
0

这是免费扩展的列表。只需下载它们,您就可以根据需要更改/升级编辑它。

  1. 按品牌/制造商购物
  2. 品牌厂商管理
  3. 制造商品牌标志

我希望你明白这个想法,我认为当你有东西开始时很容易理解。

于 2013-01-02T12:18:57.980 回答