• Magento给新产品页面添加分页


    hicoogle magento newproduct

    本文介绍如何让magento创建一个带分页功能的新到产品页面,方便我们在首页或者其它CMS Page调用和展示新到产品。

    在Magento我们经常有的做法是建立一个可以调用新产品的block,然后通过:

    {{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首页显示新到产品 或者其他位置调用,前提要有添加新产品并设置新产品期间了。

    现在是要让Magento创建一个带分页功能的新到产品展示Page,自动展示有设置了“Set Product as New from Date – Set Product as New to Date”的新到产品。

    话入正题。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的这个文件另外命名区分开。

    添加以下内容到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的内容为以下内容:

    <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 是翻译老外的,经实际操作完全可行。

  • 相关阅读:
    kafka 0.10.2 cetos6.5 集群部署
    zookeeper3.4.9 centos6.5 集群安装
    centos6.5 scala环境变量
    用易语言写个简单的小爬虫其中的关键点
    MYSQL错误码2059解决办法
    python随机生成经纬度(用于爬虫参数伪造)
    frida框架hook获取方法输出参数(常用于简单的so输出参数获取,快速开发)
    安卓日常开发和逆向中常用的shell命令与非shell命令
    从了解机器学习开始
    numpy的使用方法
  • 原文地址:https://www.cnblogs.com/focai/p/4195458.html
Copyright © 2020-2023  润新知