Domanda

Ho creato i gruppi personalizzati e i campi sotto sistema-> Configurazione-> Design Ho usato il seguente evento.

<admin_system_config_changed_section_design>
    <observers>
        <custom>
            <type>singleton</type>
            <class>Custon_Custom_Observer</class>
            <method>save</method>
            </custom>
    </observers>
</admin_system_config_changed_section_design>
.

Ci sono tre tipi di scope in Magento.

1) Default

2) Siti Web

3) Negozi

Voglio tutti i valori dei miei campi personalizzati nel pannello di amministrazione per memorizzare i valori in tabella personalizzata. Inserisci Descrizione dell'immagine qui

Ad esempio, Ottieni la descrizione Valore del campo nel livello del negozio.

Mage::getStoreConfig('design/custom/description');
.

Voglio il valore di cui sopra nel livello del sito Web e del livello del negozio corrente. Ho provato Questo link

È stato utile?

Soluzione

in config.xml,

 <global>
    <events>
        <admin_system_config_changed_section_design>
            <observers>
                <custom>
                    <type>singleton</type>
                    <class>Custon_Custom_Observer</class>
                    <method>saveSystemConfig</method>
                    </custom>
            </observers>
        </admin_system_config_changed_section_design>
    </events>
 </global>
.

in observer.php,

public function saveSystemConfig(Varien_Event_Observer $observer)
{
    $postData = $observer->getEvent()->getData();

    if (is_null($postData['store']) && $postData['website']) //check for website scope
    {
        $scopeId = Mage::getModel('core/website')->load($postData['website'])->getId();
        $description  = Mage::app()->getWebsite($scopeId)->getConfig('design/custom/description');
        $currentScope = 'websites';
    }
    elseif($postData['store']) //check for store scope
    {
        $scopeId =   Mage::getModel('core/store')->load($postData['store'])->getId();
        $description  = Mage::app()->getStore($scopeId)->getConfig('design/custom/description');
        $currentScope = 'stores';
    }
    else //for default scope
    {
        $scopeId = 0;
        $description  = Mage::getStoreConfig('design/social-meta-tags/design/custom/description')
        $currentScope = 'default';
    }
}
.

Da quanto sopra puoi ottenere valori individuali di campo in tutti gli scopi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top