本文介绍如何让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 是翻译老外的,经实际操做彻底可行。