【发布时间】:2010-11-19 08:38:29
【问题描述】:
我需要在 Magento 主页上自动显示 3 个左右的新产品。这意味着管理员不必使用“常规”选项卡中的“新日期”和“新日期”属性将产品标记为新产品。我知道如何自动创建一个包含新产品的单独类别 (http://www.tridian.com/developer-blog/adding-new-arrivals-to-magento/),但是如何在主页上显示它们?
【问题讨论】:
标签: magento
我需要在 Magento 主页上自动显示 3 个左右的新产品。这意味着管理员不必使用“常规”选项卡中的“新日期”和“新日期”属性将产品标记为新产品。我知道如何自动创建一个包含新产品的单独类别 (http://www.tridian.com/developer-blog/adding-new-arrivals-to-magento/),但是如何在主页上显示它们?
【问题讨论】:
标签: magento
您必须为此类系统属性设置新模型。 首先在 magento mysql 数据库中编辑您的 *eav_attribute* 表
去编辑“news_to_date”记录并设置后端模型 从“eav/entity_attribute_backend_datetime”到“catalog/product_attribute_backend_newsto”
现在转到Core/Catalog/Model/Product/Attribute/Backend并创建一个新文件“Newsto.php”
将此代码写入此文件而不是保存
class Mage_Catalog_Model_Product_Attribute_Backend_Newsto extends Mage_Eav_Model_Entity_Attribute_Backend_Datetime
{
public function beforeSave($object)
{
$attributeName = $this->getAttribute()->getName();
$startDate = $object->getData('news_from_date');
$toDate = $object->getData($attributeName);
if ($toDate === false) {
return $this;
}
if ($toDate == '' && $startDate != '') {
$newdate = strtotime($startDate);
$toDate = date("d/m/Y",strtotime("+7 days",$newdate));
}
$object->setData($attributeName, $toDate);
parent::beforeSave($object);
return $this;
}
}
【讨论】:
如果您为主页构建自定义布局并选择根据新标准而不是基于给定类别显示内容,我想您可以。从来没有这样做过,所以它只是一个在这个方向研究的建议。
【讨论】: