Pergunta

Eu criei os grupos e campos personalizados em System-> Configuration-> Design I Usei o evento abaixo.

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

Existem três tipos de escopo no magento.

1) Padrão

2) Sites

3) Lojas

Quero que todos os valores dos meus campos personalizados no painel de administração armazenem os valores na tabela personalizada.enter image description here

Por exemplo, você obtém o valor do campo de descrição no nível da loja.

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

Quero o valor acima no nível do site e no nível atual da loja.eu tentei esse link

Foi útil?

Solução

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

Em observador.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';
    }
}

Do exposto acima, você pode obter valores de campos individuais em todos os escopos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top