2010-12-08 32 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