【问题标题】:Magento calling a catalog/product_list type block from product pageMagento 从产品页面调用目录/产品列表类型块
【发布时间】:2012-10-11 23:09:52
【问题描述】:

我正在使用一个简单的自定义块在侧栏中列出来自给定类别的产品。调用时它工作正常

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

【问题讨论】:

    标签: magento magento-1.7 product


    【解决方案1】:

    结果证明每个地方使用不同的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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      相关资源
      最近更新 更多