Bagaimana cara menambahkan bidang tanggal di system.xml?


Jawaban:


16

Jika Anda menambahkan yang berikut di system.xml Anda

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

Kemudian buat file berikut:

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();
    }
}

Ini dengan asumsi bahwa Anda sudah memiliki pengaturan blok untuk modul ini di config.xml


@Sukeshini, Untuk blok di config.xml Anda perlu menambahkan <block> <module> <class> Namespace_Module_Block </class> </module> </blocks>
Mukesh

Harap dicatat bahwa tanggal akan disimpan di lokal yang ditetapkan oleh admin Anda. Ini bisa menimbulkan masalah. Misalnya: format tanggal Belanda adalah dd-MM-YYYY. Ini akan disimpan sebagai string dalam database Anda dalam format ini. Proses lain yang bergantung pada tanggal ini mungkin tidak berfungsi dengan baik. Misalnya: saat membuat PDF, lokal yang dikembalikan oleh Magento adalah en_US, bahkan jika admin diatur ke sesuatu yang berbeda. Ini dapat menyebabkan hasil yang tidak terduga.
Giel Berkers
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.