Obtenir des données de configuration système dans le site Web, le stockage et la portée par défaut

magento.stackexchange https://magento.stackexchange.com//questions/51954

Question

J'ai créé les groupes et les champs personnalisés sous Système-> Configuration-> Conception J'ai utilisé l'événement ci-dessous.

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

Il existe trois types de portée dans Magento.

1) par défaut

2) Sites Web

3) stocke

Je veux toutes les valeurs de mes champs personnalisés dans le panneau Admin pour stocker les valeurs de la table personnalisée. Entrez la description de l'image ici

Par exemple, Vous obtenez une description de la valeur de champ en niveau de magasin.

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

Je veux la valeur ci-dessus dans le niveau du site Web et le niveau de magasin actuel. J'ai essayé Ce lien

Était-ce utile?

La solution

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

dans 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';
    }
}

à partir de ce qui précède, vous pouvez obtenir des valeurs de champ individuelles dans toutes les étanches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top