2010-12-08 146 views
2

我想使用Magento的特殊价格功能,并在CMS页面中以特价显示所有产品。它正在工作,但即使我为10种产品分配了特价,也只会显示9种产品。然后我想到了分页。现在我尝试了一些我发现使用谷歌搜索的建议方法,但他们没有工作(也许我错过了一些东西)。这就是为什么我想问一下从哪里开始的方向。这是我用于特价的代码。如何在Magento特价页面中包含分页?

<?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?> 
    <div class="widget widget-new-products"> 
<div class="widget-title"> 
    <h2><?php echo $this->__('Special Product') ?></h2> 
</div> 
<div class="widget-products"> 

<?php $_columnCount = $this->getColumnCount(); ?> 
    <?php $i=0; foreach ($_products->getItems() as $_product): ?> 
    <?php if ($i++%$_columnCount==0): ?> 
    <ul class="products-grid"> 
    <?php endif ?> 
     <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>"> 
       <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image') ?>" width="195px" height="195px" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /></a> 
       <h3 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>)"><?php echo $this->htmlEscape($_product->getName()) ?></a></h3> 

       <!-- ###### BRANDS EG. BY CHIC ON A MISSION ###### --> 
       <div class="product-brand"><?php echo $this->htmlEscape($_product->getextraline()) ?></div> 
       <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?> 
       <?php echo $this->getPriceHtml($_product, true, '-widget-new-grid') ?> 

      <div class="actions"> 
       <?php if($_product->isSaleable()): ?> 
        <!-- <button type="button" title="<?php /* echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart')*/ ?></span></span></button>--> 
       <?php else: ?> 
        <!--<p class="availability out-of-stock"><span><?php // echo $this->__('Out of stock') ?></span></p>--> 
        <div class="out-of-stock-special"><img src="<?php echo $this->getSkinUrl('images/donna/soldout-overon.png') ?>" alt="uitverkocht" width="50px" /></div> 
       <?php endif; ?> 

      </div> 
      </li> 
    <?php if ($i%$_columnCount==0 || $i==count($_products)): ?> 
    </ul> 
    <?php endif ?> 
    <?php endforeach; ?> 

</div> 

然后我把这个代码在CMS内容。

{{block type="catalog/product_special" template="catalog/product/special.phtml"}} 

我试过使用这段代码。 <?php echo $this->getToolbarHtml() ?>,但它不会工作。我也试过这个。 <?php echo $this->getToolbarBlock()->setTemplate('catalog/product/list/ctoolbar.phtml')->toHtml(); ?>

我也尝试过CMS设计中的布局更新。

<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml"> 
    <block type="page/html_pager" name="product_list_toolbar_pager"/> 
</block> 
<action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action> 
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action> 
</block> 
<update handle="page_three_column" /> 

它也没有工作。希望有人会引导我。 :)

回答

2

你可以尝试这种解决方案

1)创建块显示特殊的产品是这样的:

class Yournamespace_Mycatalog_Product_List_Specials extends Mage_Catalog_Block_Product_List{ 

    protected function _getProductCollection(){ 
    // your code here to retrieve special priced products 
    } 
} 

2),然后使用模板文件目录的更新版本/产品/ list.phtml。它应该包括工具栏(假设mycatalog /产品/列表/ specials.phtml)

3)更新您的CMS块定义:

{{block type="mycatalog/product_list_specials" template="mycatalog/product/list/specials.phtml" }} 
+0

@ChristianYoung:如果你找到答案意味着它张贴here.that会帮助别人轻松。在你的答案中加入参考链接是个好主意。我想 – Gowri 2011-10-30 06:12:16

相关问题