Как включить нумерацию страниц на странице специальных цен Magento? - PullRequest
2 голосов
/ 08 декабря 2010

Я хочу использовать особую ценовую функцию Magento и отображать все товары со специальной ценой на странице CMS. Это работает, но отображаются только 9 товаров, даже если я назначил специальную цену 10 товарам. Тогда я подумал о нумерации страниц. Теперь я попробовал те предложенные методы, которые нашел Googling, но они не работали (возможно, я что-то пропустил). Вот почему я хочу спросить направление, с чего начать. Это код, который я использовал по специальной цене.

<?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 Ответ

2 голосов
/ 08 декабря 2010

Вы можете попробовать это решение ...

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) затем используйте обновленную версию файла шаблона catalog / product / list.phtml. Он должен включать панель инструментов (скажем, mycatalog / product / list / specials.phtml)

3) Обновите определение блока cms:

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