Comment ajouter un champ de date dans system.xml?


Réponses:


16

Si vous ajoutez ce qui suit dans votre system.xml

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

Créez ensuite le fichier suivant:

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

Cela suppose que vous avez déjà la configuration des blocs pour ce module dans le config.xml


@Sukeshini, Pour les blocs dans le fichier config.xml, vous devez ajouter <blocks> <module> <class> Namespace_Module_Block </class> </module> </blocks>
Mukesh

Veuillez noter que la date sera enregistrée dans les paramètres régionaux définis par votre administrateur. Cela peut provoquer des problèmes. Par exemple: le format de date néerlandais est jj-MM-AAAA. Cela sera enregistré sous forme de chaîne dans votre base de données dans ce format. D'autres processus qui dépendent de cette date peuvent ne pas fonctionner correctement. Par exemple: lors de la génération d'un PDF, les paramètres régionaux renvoyés par Magento sont en_US, même si l'administrateur est défini sur quelque chose de différent. Cela peut entraîner des résultats imprévus.
Giel Berkers
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.