如何在Magento特价页面中加入分页?

时间:2010-12-08 02:36:30

标签: magento pagination

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

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

它也没用。希望有人会指导我。 :)

1 个答案:

答案 0 :(得分: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)然后使用模板文件目录/ product / list.phtml的更新版本。它应该包括工具栏(比如mycatalog / product / list / specials.phtml)

3)更新你的cms块定义:

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