Configurazione del sistema Multiselect predefinito tutto selezionato


8

Ho un campo di configurazione del sistema di tipo multi-selezione che verrà popolato usando il catalog/product_attribute_collection. Questa è una parte di system.xmlciò che lo definisce.

  <attributes>
       <label>Choose Attributes to JSONize</label>
       <frontend_type>multiselect</frontend_type>
       <sort_order>3</sort_order>
       <show_in_default>1</show_in_default>
       <show_in_website>1</show_in_website>
       <show_in_store>1</show_in_store>

<source_model>package_module/system_config_attributes</source_model>
  </attributes>

Ora voglio che tutti i valori nella selezione multipla siano selezionati per impostazione predefinita. Poiché i valori predefiniti per la configurazione del sistema sono definiti in config.xml, non sono sicuro di come scegliere tutto come predefinito.

Questa è la sezione config.xmlrelativa alla domanda

<default>
    <mytab>
        <mysection>
            <attributes><!-- ***WHAT SHOULD I WRITE HERE*** --></attributes>
        </mysection>
    </mytab>
</default>

Risposte:


6

Utilizzare D ataScript per memorizzare i dati nel modulo di configurazione.

Come creare uno script di dati

http://inchoo.net/magento/magento-install-install-upgrade-data-and-data-upgrade-scripts/

In datascript chiama semplicemente il modulo di configurazione principale e salva i tuoi dati

$myDynamicValue = '1,2,3';
Mage::getConfig()->saveConfig('section/group/field', $myDynamicValue, 'default', 0);

Questa è stata una soluzione davvero intelligente, e ha funzionato!
Jay Ghosh,

3

Do un esempio di selezione multipla.

<fields>
    <view_style translate="label">
        <label>Display Settings</label>
        <frontend_type>multiselect</frontend_type>
        <source_model>yourmodule/system_config_source_view</source_model>
        <sort_order>40</sort_order>
        <show_in_default>1</show_in_default>
    </view_style>
</fields>

creare un file per l'opzione multi-selezione nel modulo in questo percorso

your_namespace / yourmodel / modello / sistema / Config / Fonte / view.php

Aggiungi sotto il codice nel tuo View.php

class YourNamespace_YourModule_Model_System_Config_Source_View 
{
    /**
     * Options getter
     *
     * @return array
     */
    public function toOptionArray()
    {
        return array(
            array('value' => 0, 'label' => Mage::helper('adminhtml')->__('Data1')),
            array('value' => 1, 'label' => Mage::helper('adminhtml')->__('Data2')),
            array('value' => 2, 'label' => Mage::helper('adminhtml')->__('Data3')),
        );
    }

    /**
     * Get options in "key-value" format
     *
     * @return array
     */
    public function toArray()
    {
        return array(
            0 => Mage::helper('adminhtml')->__('Data1'),
            1 => Mage::helper('adminhtml')->__('Data2'),
            3 => Mage::helper('adminhtml')->__('Data3'),
        );
    }
}

La tua risposta spiega come definire un modello di origine. L'ho già fatto. Voglio che tutti i valori del modello sorgente siano selezionati per impostazione predefinita
Jay Ghosh

3
<default>
     <mytab>
        <mysection>
            <attributes><!-- ***WHAT SHOULD I WRITE HERE*** --></attributes>
        </mysection>
    </mytab>
</default>

È necessario utilizzare le chiavi separate da virgola dell'array di opzioni.

per esempio

<default>
     <mytab>
        <mysection>
            <attributes>0,1,3</attributes>
        </mysection>
    </mytab>
</default>

Seleziona tutte e tre le opzioni per impostazione predefinita.


Sì ma come ho detto. Non conosco in anticipo i valori per scrivere in una stringa separata da virgola. È dinamico
Jay Ghosh,
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.