如何在system.xml中添加日期字段?


Answers:


16

如果在system.xml中添加以下内容

<frontend_type>text</frontend_type>
<frontend_model>namespace_module/adminhtml_system_config_date</frontend_model>

然后创建以下文件:

app / code / [codePool] /Namespace/Module/Block/Adminhtml/System/Config/Date.php

class Namespace_Module_Block_Adminhtml_System_Config_Date extends Mage_Adminhtml_Block_System_Config_Form_Field
{
    protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
    {
        $date = new Varien_Data_Form_Element_Date();
        $format = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);

        $data = array(
            'name'      => $element->getName(),
            'html_id'   => $element->getId(),
            'image'     => $this->getSkinUrl('images/grid-cal.gif'),
        );
        $date->setData($data);
        $date->setValue($element->getValue(), $format);
        $date->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
        $date->setForm($element->getForm());

        return $date->getElementHtml();
    }
}

假设您已经在config.xml中为此模块设置了块


@Sukeshini,对于config.xml中的块,您需要添加<blocks> <module> <class> Namespace_Module_Block </ class> </ module> </ blocks>
Mukesh

请注意,日期将保存在管理员设置的语言环境中。这可能会引起问题。例如:荷兰语日期格式为dd-MM-YYYY。该文件将以这种格式另存为字符串。依赖此日期的其他过程可能无法正常工作。例如:生成PDF时,即使admin设置为其他值,Magento返回的语言环境也是en_US。这可能会导致无法预料的结果。
Giel Berkers
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.