无法在日期字段上回滚到“使用默认值”

时间:2011-07-07 09:59:18

标签: magento

我刚刚向Magento报告了一个错误(http://www.magentocommerce.com/bug-tracking/issue?issue=11842),我想知道是否有人在这里看到过这个问题并找到了解决方案。

事情就是这样:

对于后端产品编辑页面中的任何日期类型字段:

1-切换到商店视图

2-取消选中“使用默认值”(对于日期字段)

3-选择日期

4-保存产品并继续编辑

5-重新检查“使用默认值”

6-保存产品并继续编辑

“使用默认值”复选框保持未选中状态:(

字段值为空且可编辑:(

我尝试了几次谷歌搜索并没有找到任何有效的答案。

非常感谢分享我有一个线索。

1 个答案:

答案 0 :(得分:1)

这已在CE 1.5中修复 以下是如何修复以前的版本。

编辑app / code / core / Mage / Eav / Model / Entity / Attribute / Backend / Datetime.php

替换

public function beforeSave($object)
{
    $attributeName = $this->getAttribute()->getName();
    $_formated = $object->getData($attributeName . '_is_formated');
    if (!$_formated && $object->hasData($attributeName)) {
        try {
            $value = $this->formatDate($object->getData($attributeName));
        } catch (Exception $e) {
            throw new Exception("Invalid date.");
        }
        $object->setData($attributeName, $value);
        $object->setData($attributeName . '_is_formated', true);
    }
}

public function beforeSave($object)
{
    $attributeName = $this->getAttribute()->getName();
    $_formated = $object->getData($attributeName . '_is_formated');
    if (!$_formated && $object->hasData($attributeName)) {
        try {
            $value = $this->formatDate($object->getData($attributeName));
        } catch (Exception $e) {
            throw new Exception("Invalid date.");
        }

        if (is_null($value)) {
            $value = $object->getData($attributeName);
        }            

        $object->setData($attributeName, $value);
        $object->setData($attributeName . '_is_formated', true);
    }
}