Obtenga datos de configuración del sistema en el sitio web, tienda y al alcance predeterminado
-
12-12-2019 - |
Pregunta
He creado los grupos y los campos personalizados en Sistema-> Configuración-> Diseño Usé el siguiente 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>
Hay tres tipos de alcance en Magento.
1) Predeterminado
2) sitios web
3) tiendas
Quiero todos los valores de mis campos personalizados en el panel de administración para almacenar los valores en la tabla personalizada.
Por ejemplo, Usted obtiene un valor de campo de descripción en el nivel de la tienda.
Mage::getStoreConfig('design/custom/description');
Quiero el valor anterior en el nivel del sitio web y el nivel actual de la tienda. Lo he intentado este enlace
Solución
en 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>
en 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';
}
}
De lo anterior puede obtener valores de campo individuales en todos los ámbitos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange