Ottieni dati di configurazione del sistema in Sito Web, Store e Scopo predefinito
-
12-12-2019 - |
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.
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
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