obter dados de configuração do sistema no site, loja e escopo padrão
-
12-12-2019 - |
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.
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
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