2010-12-08 11 views
2

Je veux utiliser la fonction de prix spécial de Magento et afficher tous les produits avec un prix spécial dans une page CMS. Cela fonctionne, mais seulement 9 produits s'afficheront même si j'ai attribué un prix spécial à 10 produits. Puis j'ai pensé à la pagination. Maintenant j'ai essayé ces méthodes suggérées que j'ai trouvées Google mais elles n'ont pas fonctionné (peut-être que j'ai manqué quelque chose). C'est pourquoi je veux demander des directives sur où commencer. C'est le code que j'ai utilisé pour le prix spécial.Comment inclure la pagination dans la page de prix spécial 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> 

Ensuite, je placé ce code dans le contenu CMS.

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

J'ai essayé d'utiliser ce code. <?php echo $this->getToolbarHtml() ?>, mais ça ne marchera pas. J'ai aussi essayé celui-ci. <?php echo $this->getToolbarBlock()->setTemplate('catalog/product/list/ctoolbar.phtml')->toHtml(); ?>. J'ai également essayé les mises à jour de la mise en page dans la conception du système de gestion de contenu (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" /> 

Cela ne fonctionnait pas non plus. J'espère que quelqu'un me guidera dans cette affaire. :)

Répondre

2

Vous pouvez essayer cette solution ...

1) créer votre bloc pour afficher les produits spéciaux ainsi:

class Yournamespace_Mycatalog_Product_List_Specials extends Mage_Catalog_Block_Product_List{ 

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

2) puis utilisez une version mise à jour du catalogue de fichiers de modèle/product/list.phtml. Il devrait inclure la barre d'outils (disons moncatalogue/produit/liste/specials.phtml)

3) Mise à jour de votre CMS bloc définition:

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

@ChristianYoung: si vous avez trouvé la réponse signifie post-it here.that sera aider les autres facilement.adding lien de référence dans votre réponse est bonne idée.je pense – Gowri