Magento - 在多个块上使用相同的模板导致错误

时间:2013-01-24 11:21:26

标签: list magento tabs categories product

我有3个jQuery标签,希望用不同类别的产品填充每个标签。选项卡显示在类别页面上。在类别页面“自定义布局更新”中我有:

<block type="catalog/product_list" category_id="38" limit="6" name="tabs_new" template="catalog/product/tab_list.phtml" />
<block type="catalog/product_list" category_id="39" limit="6" name="tabs_topsellers" template="catalog/product/tab_list.phtml" />
<block type="catalog/product_list" category_id="40" limit="6" name="tabs_sale" template="catalog/product/tab_list.phtml" />

tab_list.phtml只是list.phtml的一个副本,工具栏被剥离,一些标记发生了变化。

在我的类别view.phtml文件中,我有以下内容:

<div id="tabs-1">
    <?php echo $this->getChildHtml('tabs_topsellers') ?>
</div>
<div id="tabs-2">
    <?php echo $this->getChildHtml('tabs_new') ?>
</div>
<div id="tabs-3">
    <?php echo $this->getChildHtml('tabs_sale') ?>
</div>

但是当我转到页面时,我收到了这个错误:

Mage registry key "isList" already exists

我有什么想法可以做到这一点吗?

3 个答案:

答案 0 :(得分:1)

对于快速修复,您可以在回显每个块之前使用Mage::unregister('isList');

答案 1 :(得分:0)

2个解决方案:

  • 在注册值之前,请检查它是否已存在:

    if(!Mage :: registry('isList')){     法师::寄存器( 'isList'); }

  • 使用$graceful函数的第三个参数“Mage::register()”来忽略现有变量的注册(它不会抛出异常而只做任何事情)

答案 2 :(得分:0)

太棒了我与Ultimo主题有类似的问题。

exception 'Mage_Core_Exception' with message 'Mage registry key "isList" already exists' in /home/devlovethe/public_html/app/Mage.php:595

我试图将product_list_featured用于多个类别。

{{block type="ultimo/product_list_featured" template="catalog/product/list_featured_slider.phtml" category_id="97" product_count="12" breakpoints="[0, 1], [320, 2], [480, 3], [768, 4], [960, 5], [1280, 6]" pagination="1" centered="1" hide_button="1" block_name="Our Featured Products"}}

在list_featured_slider.phtml的末尾,我添加了

<?php Mage::unregister('isList'); ?>