Magento給新產品頁面添加分頁

hicoogle magento newproduct

本文介紹如何讓magento建立一個帶分頁功能的新到產品頁面,方便咱們在首頁或者其它CMS Page調用和展現新到產品。php

在Magento咱們常常有的作法是創建一個能夠調用新產品的block,而後經過:html

{{block type="catalog/product_new" column_count="6" products_count="100" name="home.catalog.product.new" alias="product_homepage" template="catalog/product/new.phtml"}}

調用,這樣就能夠在Magento首頁顯示新到產品 或者其餘位置調用,前提要有添加新產品並設置新產品期間了。session

如今是要讓Magento建立一個帶分頁功能的新到產品展現Page,自動展現有設置了「Set Product as New from Date – Set Product as New to Date」的新到產品。app

話入正題。Magento在CMS Page添加帶分頁功能的新到產品頁面步驟以下;工具

建立路徑:app/code/local/Mage/Catalog/Block/Product佈局

建立文件:app/code/local/Mage/Catalog/Block/Product/New.php網站

New.php將覆蓋掉magento core裏的New.php,因此若是原來New.php有在使用的話local的這個文件另外命名區分開。this

添加如下內容到New.php翻譯

<?php
//chen@sjolzy.cn
class Mage_Catalog_Block_Product_New extends Mage_Catalog_Block_Product_List
{
   function get_prod_count()
   {
      //unset any saved limits
      Mage::getSingleton('catalog/session')->unsLimitPage();
      return (isset($_REQUEST['limit'])) ? intval($_REQUEST['limit']) : 12;
   }// get_prod_count

   function get_cur_page()
   {
      return (isset($_REQUEST['p'])) ? intval($_REQUEST['p']) : 1;
   }// get_cur_page

   /**
    * Retrieve loaded category collection
    *
    * @return Mage_Eav_Model_Entity_Collection_Abstract
   **/
   protected function _getProductCollection()
   {
      $todayDate  = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);

      $collection = Mage::getResourceModel('catalog/product_collection');
      $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());

      $collection = $this->_addProductAttributesAndPrices($collection)
         ->addStoreFilter()
         ->addAttributeToFilter('news_from_date', array('date' => true, 'to' => $todayDate))
         ->addAttributeToFilter('news_to_date', array('or'=> array(
            0 => array('date' => true, 'from' => $todayDate),
            1 => array('is' => new Zend_Db_Expr('null')))
         ), 'left')
         ->addAttributeToSort('news_from_date', 'desc')
         ->setPageSize($this->get_prod_count())
         ->setCurPage($this->get_cur_page());

      $this->setProductCollection($collection);

      return $collection;
   }// _getProductCollection
}// Mage_Catalog_Block_Product_New
?>

保存後,建立CMS裏的新到產品列表Page。添加後,設置Design的內容爲如下內容:code

<reference name="content">
   <block type="catalog/product_new" name="product_new" template="catalog/product/list.phtml">
      <action method="setCategoryId"><category_id>10</category_id></action>
      <action method="setColumnCount"><column_count>6</column_count></action>
      <action method="setProductsCount"><count>0</count></action>
      <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" />
         <action method="setDefaultGridPerPage"><limit>12</limit></action>
         <action method="addPagerLimit"><mode>grid</mode><limit>12</limit></action>
         <action method="addPagerLimit"><mode>grid</mode><limit>24</limit></action>
         <action method="addPagerLimit"><mode>grid</mode><limit>36</limit></action>
         <action method="addPagerLimit"><mode>grid</mode><limit>48</limit></action>
         <action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
      </block>
      <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>6</count></action>
      <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
   </block>
</reference>

這樣就能夠保存查看效果了。如下簡要備記幾點說明:

<block type="catalog/product_new" name="product_new" template="catalog/product/list.phtml">

設置塊的類型和使用的模版文件,這個文件也是產品列表頁用的。「catalog/product_new」 這個就是更換了的New.php。

<action method="setCategoryId"><category_id>10</category_id></action>

setCategoryId 設置目錄ID,能夠是網站的根目錄ID,或者某目錄。

<action method="setColumnCount"><column_count>6</column_count></action>

setColumnCount 新到產品的Page產品每頁產品數爲6

<action method="setProductsCount"><count>0</count></action>

setProductsCount 設爲0的話就是該指定目錄的全部產品,否者按限定數

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

爲新到產品列表頁面添加目錄頁的工具條和分頁

<action method="setDefaultGridPerPage"><limit>12</limit></action>

setDefaultGridPerPage 配置工具欄的產品顯示數

<action method="addPagerLimit"><mode>grid</mode><limit>12</limit></action>

配置分頁的產品數

<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>6</count></action>

one_column 佈局定爲6列

<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>

工具條的命名

Page的Design部分設置好後,Content部分隨便設下,保存,就能查看效果了。

這篇Magento添加新產品在CMS Page 是翻譯老外的,經實際操做徹底可行。

相關文章
相關標籤/搜索