Magento首页(子页)显示特价产品

本文介绍如何在Magento中创建一个展示当前正在进行特价促销的产品区块。通过编写一个专门的PHP类并结合PHTML模板文件,可以有效地从数据库中筛选出符合条件的特价商品,并控制其显示的数量。

1,建立文件app/code/core/Mage/Catalog/Block/Product/Special.php

class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_Abstract
{
protected $_productsCount = null;

const DEFAULT_PRODUCTS_COUNT = 6;//默认显示数量

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;
}
}
2,建立/app/design/frontend/package/theme/template/catalog/product/special.phtml
这个文件copy这个目录下的new.phtml文件里的内容,标题改下就好了

3,后台CMS->Page->Home page->Content中添加{{block type=”catalog/product_special” template=”catalog/product/special.phtml”}}

ps:如想在其他页面显示,直接建个Page复制代码{{block type=”catalog/product_special” template=”catalog/product/special.phtml”}}至Content即可。

今下午试了一下,还不错呢~~~



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值