Systemkonfiguration Mehrfachauswahl Standard alle ausgewählt


8

Ich habe ein Systemkonfigurationsfeld vom Typ multiselect, das mit dem ausgefüllt wird catalog/product_attribute_collection. Dies ist ein Teil dessen system.xml, der es definiert.

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

Jetzt möchte ich, dass standardmäßig alle Werte in der Mehrfachauswahl ausgewählt werden. Da die Standardwerte für die Systemkonfiguration in der definiert sind config.xml, bin ich mir nicht sicher, wie ich alle als Standard auswählen soll.

Dies ist der Abschnitt, der config.xmlfür die Frage relevant ist

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

Antworten:


6

Verwenden Sie D ataScript , um Daten im Konfigurationsmodul zu speichern.

So erstellen Sie ein Datenskript

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

In Datascript einfach den Kern rufen Konfigurationsmodul und speichern Sie Ihre Daten

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

Dies war eine wirklich clevere Problemumgehung, und es hat funktioniert!
Jay Ghosh

3

Ich gebe ein Multiselect-Beispiel.

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

Erstellen Sie in diesem Modul eine Datei für die Mehrfachauswahloption in Ihrem Modul

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

Fügen Sie den folgenden Code in Ihre View.php ein

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'),
        );
    }
}

In Ihrer Antwort erfahren Sie, wie Sie ein Quellmodell definieren. Das habe ich schon gemacht. Ich möchte, dass alle Werte aus dem Quellmodell standardmäßig ausgewählt werden
Jay Ghosh

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

Sie sollten die durch Kommas getrennten Schlüssel Ihres Optionsarrays verwenden.

z.B

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

Wählt standardmäßig alle drei Optionen aus.


Ja, aber wie gesagt. Ich kenne die Werte vorher nicht, um sie in eine durch Kommas getrennte Zeichenfolge zu schreiben. Es ist dynamisch
Jay Ghosh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.