最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

magento首页调用最新产品和特价产品

Magento 资料整理 ajiang-tuzi 5696浏览

magento首页调用最新产品

在前面我们知道,magento的首页是执行的cms page页面,我们可以去后台 cms page管理首页内容,调用最新产品这个模块magento已经封装好了模块模型,我们只需要调用即可,在Design中的Layout Update XML(该内容区跟前面所有的xml模块一样)中写入:

<reference name="content">
   <block type="catalog/product_new" name="home.catalog.product.new" alias="product_new" template="catalog/product/new.phtml" after="cms_page">
	<action method="addPriceBlockType">
		<type>bundle</type>
		<block>bundle/catalog_product_price</block>
		<template>bundle/catalog/product/price.phtml</template>
	</action>
	<action method="setColumnCount">
		<count>4</count>
	</action>
	<action method="setProductsCount">
		<count>4</count>
	</action>
    </block>
</reference>

要想显示最新产品记得在后台产品管理中General中Set Product as New from Date设置下。
在调用新产品的这个block中有三个action 通过method的值可以看出他的意思,第二和第三个Acion分别是设置产品显示的列数和产品的显示个数
进入最新产品调用的模板文件catalog/product/new.phtml 现在的结构当然要根据目标站来调整下才行,那么还需要我们一个个对应么?当然不用,记得在讲magento首页内容调用那一节,我们把这个模块给跳过了。因为首页的产品调用布局和列表页是一样的,复制html即可。

magento首页调用特价产品(Special Products)

这个需要我们自己添加一个block块供我们调用,可参考new products的block类,建立文件app/code/core/Mage/Catalog/Block/Product/Special.php

    <?php  
    class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_Abstract  
    {  
        protected $_productsCount= null;  
        const DEFAULT_PRODUCTS_COUNT = 5;

        protected function _beforeToHtml()  
        {  
            $todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);  
            $collection = Mage::getResourceModel('catalog/product_collection');  
            Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);  
            Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);  
            $collection = $this->_addProductAttributesAndPrices($collection)  
                        ->addStoreFilter()  
                        ->addAttributeToFilter('special_from_date',array('date'=> true,'to'=>$todayDate))  
                        ->addAttributeToFilter('special_to_date',array('or'=>array(0=>array('date'=> true,'from'=>$todayDate),1=>array('is'=>new Zend_Db_Expr('null')))),'left')  
                        ->addAttributeToSort('special_from_date','desc')  
                        ->setPageSize($this->getProductsCount())  
                        ->setCurPage(1);  
            $this->setProductCollection($collection);  
            return parent::_beforeToHtml();  
        }  
        public function setProductsCount($count)  
        {  
            $this->_productsCount = $count;  
            return $this;  
        }  
        public function getProductsCount()  
        {  
            if(null === $this->_productsCount)  
            {  
                $this->_productsCount = self::DEFAULT_PRODUCTS_COUNT;  
            }  
            return $this->_productsCount;  
        }  
    }

复制app/design/frontend/base/default/template/catalog/product/new.phtml到app/design/frontend/theme/default/template/catalog/product/special.phtml,修改为相应标题和产品显示数量
在后台首页的CMS Page模块添加调用代码:

 <block type="catalog/product_special" name="home.catalog.product.special" alias="product_special" template="catalog/product/special.phtml" after="cms_page">
    <action method="addPriceBlockType">
        <type>bundle</type>
        <block>bundle/catalog_product_price</block>
        <template>bundle/catalog/product/price.phtml</template>
    </action>
    <action method="setColumnCount">
        <count>4</count>
    </action>
    <action method="setProductsCount">
        <count>4</count>
    </action>
        </block>

当然要想显示特价产品,在产品管理处还是要设置的,进入产品管理的Prices栏,Special Price和Special Price From Date都要设置,那么前台就会显示特价产品。

转载请注明:(●--●) Hello.My Weicot » magento首页调用最新产品和特价产品

蜀ICP备15020253号-1