Configuração do sistema Multiselect padrão todos selecionados

8

Eu tenho um campo de configuração do sistema do tipo multiselecionar que será preenchido usando o catalog/product_attribute_collection. Isso faz parte do system.xmlque o 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>

Agora, quero que todos os valores na seleção múltipla sejam selecionados por padrão. Como os valores padrão para a configuração do sistema estão definidos no config.xml, não tenho certeza de como escolher todos como padrão.

Esta é a seção config.xmlrelevante para a questão

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

Respostas:

6

Use D ataScript para armazenar dados no módulo de configuração.

Como criar script de dados

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

No datascript, basta chamar o módulo de configuração principal e salvar seus dados

$myDynamicValue = '1,2,3';
Mage::getConfig()->saveConfig('section/group/field', $myDynamicValue, 'default', 0);
Priyank
fonte
Esta foi uma solução realmente inteligente e funcionou!
Jay Ghosh
3

Dou exemplo multisseleção.

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

crie um arquivo para a opção de seleção múltipla em seu módulo neste caminho

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

Adicione o código abaixo no seu 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
fonte
Sua resposta diz como definir um modelo de origem. Eu já fiz isso. Quero que todos os valores do modelo de fonte a ser selecionado por padrão
Jay Ghosh
3
<default>
     <mytab>
        <mysection>
            <attributes><!-- ***WHAT SHOULD I WRITE HERE*** --></attributes>
        </mysection>
    </mytab>
</default>

Você deve usar as chaves separadas por vírgula da sua matriz de opções.

por exemplo

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

Seleciona as três opções por padrão.

Geisel
fonte
Sim, mas como eu disse. Eu não sei os valores de antemão para escrever em uma seqüência de caracteres separada por vírgula. É da dinâmica
Jay Ghosh