Come aggiungere un campo data in system.xml?


Risposte:


16

Se aggiungi quanto segue in system.xml

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

Quindi creare il seguente file:

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

Questo presuppone che tu abbia già la configurazione dei blocchi per questo modulo in config.xml


@Sukeshini, Per i blocchi in config.xml devi aggiungere <blocks> <module> <class> Namespace_Module_Block </class> </module> </blocks>
Mukesh

Si noti che la data verrà salvata nelle impostazioni internazionali impostate dall'amministratore. Ciò può causare problemi. Ad esempio: il formato della data olandese è gg-MM-AAAA. Questo verrà salvato come stringa nel tuo database in questo formato. Altri processi che dipendono da questa data potrebbero non funzionare correttamente. Ad esempio: quando si genera un PDF, la locale restituita da Magento è en_US, anche se l'amministratore è impostato su qualcosa di diverso. Ciò può causare risultati imprevisti.
Giel Berkers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.