Configuración del sistema Multiselección predeterminada todo seleccionado

8

Tengo un campo de configuración del sistema de tipo multiselección que se completará con catalog/product_attribute_collection. Esta es una parte de lo system.xmlque lo define.

  <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>

Ahora quiero que todos los valores en la selección múltiple se seleccionen de forma predeterminada. Dado que los valores predeterminados para la configuración del sistema se definen en config.xml, no estoy seguro de cómo elegir todo como predeterminado.

Esta es la sección de la config.xmlcual es relevante para la pregunta

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

Respuestas:

6

Utilice D ataScript para almacenar datos en el módulo de configuración.

Cómo crear un script de datos

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

En el datascript simplemente llame al módulo de configuración central y guarde sus datos

$myDynamicValue = '1,2,3';
Mage::getConfig()->saveConfig('section/group/field', $myDynamicValue, 'default', 0);
Priyank
fuente
Esta fue una solución muy inteligente, ¡y funcionó!
Jay Ghosh
3

Doy ejemplo de selección múltiple.

<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>

cree un archivo para la opción de selección múltiple en su módulo en esta ruta

your_namespace / yourmodel / Model / System / Config / Source / View.php

Agregue el siguiente código en su 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'),
        );
    }
}
gelanivishal
fuente
Su respuesta le dice cómo definir un modelo fuente. Ya he hecho eso. Quiero que todos los valores del modelo fuente se seleccionen de forma predeterminada
Jay Ghosh
3
<default>
     <mytab>
        <mysection>
            <attributes><!-- ***WHAT SHOULD I WRITE HERE*** --></attributes>
        </mysection>
    </mytab>
</default>

Debe usar las teclas separadas por comas de su matriz de opciones.

p.ej

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

Selecciona las tres opciones por defecto.

Geisel
fuente
Sí pero como dije. No conozco los valores de antemano para escribir en una cadena separada por comas. Es dinámico
Jay Ghosh