1

単純なカスタム ブロックを使用して、特定のカテゴリの製品をサイド バーに一覧表示しています。として呼び出されると正常に動作します

<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>";?>
4

1 に答える 1

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>
于 2012-10-11T15:09:52.883 に答える