Advertisement
andhiirawan

Magento : Catalog Product List - Result per page (FIXED)

Dec 23rd, 2015 (edited)
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!-- app\design\frontend\rwd\default\template\catalog\product\list.phtml -->
  2.  
  3. <?php
  4. /**
  5.  * Magento
  6.  *
  7.  * NOTICE OF LICENSE
  8.  *
  9.  * This source file is subject to the Academic Free License (AFL 3.0)
  10.  * that is bundled with this package in the file LICENSE_AFL.txt.
  11.  * It is also available through the world-wide-web at this URL:
  12.  * http://opensource.org/licenses/afl-3.0.php
  13.  * If you did not receive a copy of the license and are unable to
  14.  * obtain it through the world-wide-web, please send an email
  15.  * to [email protected] so we can send you a copy immediately.
  16.  *
  17.  * DISCLAIMER
  18.  *
  19.  * Do not edit or add to this file if you wish to upgrade Magento to newer
  20.  * versions in the future. If you wish to customize Magento for your
  21.  * needs please refer to http://www.magento.com for more information.
  22.  *
  23.  * @category    design
  24.  * @package     rwd_default
  25.  * @copyright   Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
  26.  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  27.  */
  28. ?>
  29. <?php
  30. /**
  31.  * Product list template
  32.  *
  33.  * @see Mage_Catalog_Block_Product_List
  34.  */
  35. /* @var $this Mage_Catalog_Block_Product_List */
  36. ?>
  37. <?php
  38.  
  39.     $cat = Mage::app()->getRequest()->getParam('cat');
  40.     $_productCollection=$this->getLoadedProductCollection();
  41.    
  42.     $_category = Mage::registry('current_category');
  43.     if($cat == '')
  44.         $currentCategoryId = $_category->getId();
  45.     else
  46.         $currentCategoryId = $cat;
  47.    
  48.     $limit = Mage::getSingleton('catalog/session')->getLimitPage();        
  49.            
  50.     if($limit == ""){
  51.         $limit = Mage::getStoreConfig('catalog/frontend/grid_per_page');
  52.     }
  53.      
  54. ?>
  55. <!-- No Product -->
  56. <?php if(!$_productCollection->count()): ?>
  57. <p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
  58. <?php else: ?>
  59. <div class="category-products">
  60.     <?php echo $this->getToolbarHtml();
  61.         $current_page = Mage::getBlockSingleton('page/html_pager')->getCurrentPage();        
  62.         //echo 'current page : ' . $current_page;
  63.     ?>
  64.  
  65.     <?php
  66.         if($currentCategoryId){
  67.             $order = Mage::getSingleton('catalog/session')->getSortOrder();
  68.             $direction = Mage::getSingleton('catalog/session')->getSortDirection();
  69.             $display = Mage::getSingleton('catalog/session')->getDisplayMode();
  70.  
  71.              if($order == 'name') {
  72.                 if($direction == '') {
  73.                     $direction = 'asc';
  74.                 }
  75.                 $_productCollection = Mage::getModel('catalog/category')->load($currentCategoryId)
  76.                      ->getProductCollection()
  77.                      ->addAttributeToSelect('*')
  78.                      ->addAttributeToFilter('status', 1)
  79.                      ->addAttributeToFilter('visibility', 4)
  80.                      ->setOrder('name', $direction);
  81.                 //$_productCollection->printLogQuery(true);
  82.              }
  83.  
  84.              if($order == 'price') {
  85.                 if($direction == '') {
  86.                     $direction = 'asc';
  87.                 }
  88.                 $_productCollection = Mage::getModel('catalog/category')->load($currentCategoryId)
  89.                      ->getProductCollection()
  90.                      ->addAttributeToSelect('*')
  91.                      ->addAttributeToFilter('status', 1)
  92.                      ->addAttributeToFilter('visibility', 4)
  93.                      ->setOrder('price', $direction);
  94.              }
  95.  
  96.              if($order == 'position') {
  97.                 if($direction == '') {
  98.                     $direction = 'asc';
  99.                 }
  100.                 $_productCollection = Mage::getModel('catalog/category')->load($currentCategoryId)
  101.                      ->getProductCollection()
  102.                      ->addAttributeToSelect('*')
  103.                      ->addAttributeToFilter('status', 1)
  104.                      ->addAttributeToFilter('visibility', 4)
  105.                      ->setOrder('position', $direction);
  106.              }
  107.  
  108.              if($order == '') {
  109.                 if($direction == '') {
  110.                     $direction = 'asc';
  111.                 }
  112.                 $_productCollection = Mage::getModel('catalog/category')->load($currentCategoryId)
  113.                      ->getProductCollection()
  114.                      ->addAttributeToSelect('*')
  115.                      ->addAttributeToFilter('status', 1)
  116.                      ->addAttributeToFilter('visibility', 4)
  117.                      ->setOrder('news_from_date', 'desc')
  118.                      ->setOrder('created_at', 'desc');
  119.             }
  120.            
  121.             //layered navigation handling
  122.             //price
  123.             $price = Mage::app()->getRequest()->getParam('price');
  124.             $class = Mage::app()->getRequest()->getParam('class');
  125.             $silos = Mage::app()->getRequest()->getParam('silos');
  126.            
  127.             if($price != ''){
  128.                 $arr_price = explode('-',$price);
  129.            
  130.                 if($arr_price[1] == '')
  131.                     $_productCollection->addAttributeToFilter('price',array('from'=> $arr_price[0]));
  132.                 else
  133.                     $_productCollection->addAttributeToFilter('price',array('from'=> $arr_price[0], 'to' => $arr_price[1]));
  134.             }
  135.            
  136.             if($class != ''){
  137.                 //$_productCollection->addAttributeToSelect('class');
  138.                 $_productCollection->addAttributeToFilter('class', $class);
  139.             }
  140.            
  141.             if($silos != ''){
  142.                 $_productCollection->addAttributeToFilter('silos', $silos);
  143.             }
  144.         }
  145.        
  146.         if($limit != 'all'){
  147.             $_productCollection->setPageSize($limit)->setCurPage($current_page);
  148.         }
  149.        
  150.         //echo $_productCollection->getSelect()->assemble();
  151.        
  152.     ?>
  153.     <!-- List mode -->
  154.     <?php if($this->getMode()!='grid'): ?>
  155.     <?php $_iterator = 0; ?>
  156.     <ol class="products-list" id="products-list">
  157.     <?php foreach ($_productCollection as $_product): ?>
  158.         <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
  159.             <!-- Product Image -- >
  160.             <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">                
  161.                 <?php $_imgSize = 300; ?>
  162.                 <img id="product-collection-image-<?php echo $_product->getId(); ?>"
  163.                      src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->keepFrame(false)->resize($_imgSize); ?>"
  164.                      alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
  165.             </a>
  166.             <!-- Product description -->
  167.             <div class="product-shop">
  168.                 <div class="f-fix">
  169.                     <div class="product-primary">
  170.                         <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
  171.                         <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
  172.                         <?php if($_product->getRatingSummary()): ?>
  173.                         <?php echo $this->getReviewsSummaryHtml($_product) ?>
  174.                         <?php endif; ?>
  175.                         <?php
  176.                         if ($this->getChild('name.after')) {
  177.                             $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
  178.                             foreach ($_nameAfterChildren as $_nameAfterChildName) {
  179.                                 $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
  180.                                 $_nameAfterChild->setProduct($_product);
  181.                                 echo $_nameAfterChild->toHtml();
  182.                             }
  183.                         }
  184.                         ?>
  185.                     </div>
  186.                     <div class="product-secondary">
  187.                         <?php echo $this->getPriceHtml($_product, true) ?>
  188.                     </div>
  189.                     <div class="product-secondary">
  190.                         <?php if(!$_product->canConfigure() && $_product->isSaleable()): ?>
  191.                             <p class="action"><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></p>
  192.                         <?php elseif($_product->getStockItem() && $_product->getStockItem()->getIsInStock()): ?>
  193.                             <p class="action"><a title="<?php echo $this->__('View Details') ?>" class="button" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a></p>
  194.                         <?php else: ?>
  195.                             <p class="action availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
  196.                         <?php endif; ?>
  197.                         <ul class="add-to-links">
  198.                             <?php if ($this->helper('wishlist')->isAllow()) : ?>
  199.                                 <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
  200.                             <?php endif; ?>
  201.                             <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
  202.                                 <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
  203.                             <?php endif; ?>
  204.                         </ul>
  205.                     </div>
  206.                     <div class="desc std">
  207.                         <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
  208.                         <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
  209.                     </div>
  210.                 </div>
  211.             </div>
  212.         </li>
  213.     <?php endforeach; ?>
  214.     </ol>
  215.     <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>
  216.  
  217.     <?php else: ?>
  218.  
  219.     <!-- Grid Mode -->
  220.  
  221.     <?php $_collectionSize = $_productCollection->count() ?>
  222.     <?php
  223.         //$_columnCount = $this->getColumnCount
  224.         $_columnCount = 4;
  225.     ?>
  226.     <ul class="products-grid ali-grid products-grid--max-<?php echo $_columnCount; ?>-col">
  227.         <?php $i=0;
  228.         foreach ($_productCollection as $_product): ?>
  229.             <?php /*if ($i++%$_columnCount==0): ?>
  230.             <?php endif*/ ?>
  231.             <?php //echo $_productCollection->getSelect()->assemble() ?>
  232.             <?php //echo '<pre>'; //print_r(debug_print_backtrace()); //echo '</pre>'; ?>
  233.             <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
  234.                        
  235.                 <div class="img-prod">
  236.                     <?php                    
  237.                     if($_product->getSpecialPrice()):
  238.                     ?>
  239.                     <div class="embel-embel sale"><?php echo $this->__('Sale')?><span class="sale"></span></div>
  240.                     <?php endif;?>
  241.                     <?php                    
  242.                         $date = date("Y-m-d 00:00:00");
  243.                         $newtodate = $_product['news_to_date'];
  244.                         $newfromdate = $_product['news_from_date'];
  245.                
  246.                         if (isset($newfromdate) and isset($newtodate) and $date >= $newfromdate and $date <= $newtodate) :
  247.                     ?>                                        
  248.                     <div class="embel-embel new"><?php echo $this->__('New')?><span class="new"></span></div>
  249.                    
  250.                     <?php
  251.                         elseif(isset($newfromdate)):
  252.                     ?>
  253.                     <div class="embel-embel new"><?php echo $this->__('New')?><span class="new"></span></div>
  254.                     <?php endif;?>
  255.                     <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image">
  256.                         <?php $_imgSize = 210; ?>
  257.                         <img id="product-collection-image-<?php echo $_product->getId(); ?>"
  258.                              src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(238,317); ?>"
  259.                              alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
  260.                     </a>
  261.                 </div>
  262.                 <div class="product-info">
  263.                     <div class="prod-title"><?php echo $this->helper('catalog/output')->productAttribute($_product, $_product->getName() , 'name') ?></div>
  264.                     <h2 style="display:none" class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $this->helper('catalog/output')->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
  265.                     <?php
  266.                     // Provides extra blocks on which to hang some features for products in the list
  267.                     // Features providing UI elements targeting this block will display directly below the product name
  268.                     /*if ($this->getChild('name.after')) {
  269.                         $_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
  270.                         foreach ($_nameAfterChildren as $_nameAfterChildName) {
  271.                             $_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
  272.                             $_nameAfterChild->setProduct($_product);
  273.                             echo $_nameAfterChild->toHtml();
  274.                         }
  275.                     }*/
  276.                     ?>
  277.                     <?php echo $this->getPriceHtml($_product, true) ?>
  278.                     <?php //if($_product->getRatingSummary()): ?>
  279.                     <?php //echo $this->getReviewsSummaryHtml($_product, 'short') ?>
  280.                     <?php //endif; ?>
  281.                     <div class="actions" style="display:none">
  282.                         <?php if(!$_product->canConfigure() && $_product->isSaleable()): ?>
  283.                             <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>
  284.                         <?php elseif($_product->getStockItem() && $_product->getStockItem()->getIsInStock()): ?>
  285.                             <a title="<?php echo $this->__('View Details') ?>" class="button" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a>
  286.                         <?php else: ?>
  287.                             <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
  288.                         <?php endif; ?>
  289.                         <ul class="add-to-links">
  290.                             <?php if ($this->helper('wishlist')->isAllow()) : ?>
  291.                                 <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
  292.                             <?php endif; ?>
  293.                             <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
  294.                                 <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
  295.                             <?php endif; ?>
  296.                         </ul>
  297.                     </div>
  298.                 </div>
  299.             </li>
  300.             <?php /*if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
  301.             <?php endif*/ ?>
  302.         <?php endforeach ?>
  303.     </ul>
  304.     <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
  305.     <?php endif; ?>
  306.  
  307.     <div class="toolbar-bottom">
  308.         <?php echo $this->getToolbarHtml() ?>
  309.     </div>
  310. </div>
  311. <?php endif; ?>
  312. <?php
  313. // Provides a block where additional page components may be attached, primarily good for in-page JavaScript
  314. if ($this->getChild('after')) {
  315.     $_afterChildren = $this->getChild('after')->getSortedChildren();
  316.     foreach ($_afterChildren as $_afterChildName) {
  317.         $_afterChild = $this->getChild('after')->getChild($_afterChildName);
  318.         //set product collection on after blocks
  319.         $_afterChild->setProductCollection($_productCollection);
  320.         echo $_afterChild->toHtml();
  321.     }
  322. }
  323. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement