我正在使用一个简单的自定义块来列出侧栏中给定类别的产品。它被称为
时工作正常<block type="catalog/product_list" before="-" name="product.leftnav" as="product.leftnav" template="catalog/product/training_leftlist.phtml" />
在产品页面以外的所有页面上,它会导致错误(我得到的项目页面下面有404页面)。
我应该使用更好的块type
,还是在产品页面上使用不同的方式调用它?
模板文件是:
<?php
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status',1)
->addStoreFilter()
->addCategoryFilter(Mage::getModel('catalog/category')->load(12));
$products->setPageSize(4)->setCurPage(1);
$_helper = $this->helper('catalog/output');
然后使用类似
的内容打印项目if(count($products>0)) echo "<ul>";
foreach($products as $_product):?>
<li>
<h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
</li>
<?php endforeach;?>
<?php if(count($products>0)) echo "</ul>";?>
答案 0 :(得分:0)
答案结果是每个地方使用不同的block type
。
对于非产品页面
<block type="catalog/product_list" before="-" name="product.leftnav" as="product.leftnav" template="catalog/product/training_leftlist.phtml" />
然后,对于产品页面,请使用type="catalog/product_list_related"
。记住要删除上面的内容,例如:
<catalog_product_view>
<remove name="product.leftnav" />
<!-- Left bar product list-->
<reference name="left">
<block type="catalog/product_list_related" before="-" name="product.leftnav.view" as="product.leftnav.view" template="catalog/product/training_leftlist.phtml" />
</reference>
</catalog_product_view>