Come aggiungere il campo "Paesi consentiti" in forma personalizzata


8

Devo creare un modulo personalizzato che consenta all'amministratore di creare zone per diversi paesi. Devo aggiungere il campo "consenti paese" (proprio come in magento predefinito System > Configuration > General > Countries Options) nel mio modulo in cui l'amministratore può selezionare i paesi per una zona.

Devo solo aggiungere un campo multi-selezione di paesi nel mio modulo di amministrazione del modulo personalizzato.

Qualcuno può aiutarmi a farlo. Grazie..


scusa hai dimenticato di chiedere, vuoi aggiungerlo nella sezione di configurazione personalizzata o nel modulo di amministrazione?
Shathish,

Devo aggiungere il campo nel mio modulo di amministrazione del modulo personalizzato.
Jaimin Sutariya,

Risposte:


6

Ho trovato la soluzione
Per aggiungere un menu a discesa multi-selezione nel tuo modulo, devi aggiungere il codice seguente nel tuo Block/Adminhtml/ModuleName/Edit/Tab/Form.phpfile.

$countryList = Mage::getModel('directory/country')->getResourceCollection()->loadByStore()->toOptionArray(true);
$fieldset->addField('countries', 'multiselect', array(
            'name'      => 'countries[]',
            'label'     => Mage::helper('zones')->__('Countries'),
            'title'     => Mage::helper('zones')->__('Countries'),
            'required'  => true,
            'values'    => $countryList,
        ));

6

Per visualizzare il campo Paesi consentiti nella configurazione del modulo personalizzato:

aggiungi quanto segue al system.xml del tuo modulo

<sallowspecific translate="label">
    <label>Ship to Applicable Countries</label>
    <frontend_type>select</frontend_type>
    <sort_order>90</sort_order>
    <frontend_class>shipping-applicable-country</frontend_class>
    <source_model>adminhtml/system_config_source_shipping_allspecificcountries</source_model>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>0</show_in_store>
</sallowspecific>
<specificcountry translate="label">
    <label>Ship to Specific Countries</label>
    <frontend_type>multiselect</frontend_type>
    <sort_order>91</sort_order>
    <source_model>adminhtml/system_config_source_country</source_model>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>0</show_in_store>
    <can_be_empty>1</can_be_empty>
</specificcountry>

sotto il <fields>tag nella sezione personalizzata.

Per aggiungerlo nel modulo di amministrazione:

in app / codice / local / Yourmodulename / Block / Adminhtml / Yourmodulename / Edit / Tab / Form.php

$countryList = Mage::getModel('directory/country')->getResourceCollection()->loadByStore()->toOptionArray(true);
$fieldset->addField('allowed_countries', 'multiselect', array( /* "allowed_countries" is the column name in your custom table to store these values */
    'name'      => 'countries[]',
    'label'     => Mage::helper('yourmodulename')->__('Allowed Countries'),
    'title'     => Mage::helper('yourmodulename')->__('Allowed Countries'),
    'required'  => true, /* only if it is required */
    'values'    => $countryList,
));

Nota:

  • Devi scrivere la logica per salvare i valori di selezione multipla nel database in saveAction ()

per visualizzarlo nella griglia di amministrazione:

fai riferimento a questo link .


Per salvare i valori a selezione multipla devi solo implodere i dati di post usando "," (es. $ Paesi = implode (",", $ selectedCountries)) e salvarli nel database. Magento farà tutto il resto per ripristinarlo nella pagina di modifica o visualizzazione.
Jaimin Sutariya,

3
$fieldset->addField('country', 'select', array(  
        'name' => 'country',  
        'label' => 'Country',  
        'values' => Mage::getModel('adminhtml/system_config_source_country')->toOptionArray(),  
        ));
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.