Cómo obtener datos de la configuración del sistema Magento


Solo estoy divagando sobre cómo puedo obtener los datos de configuración para mi módulo personalizado. La configuración se puede establecer desde el admin system->configuration y cómo extraerla en frontend?

 59
Author: Josua Marcel Chrisano, 2011-05-05

4 answers

$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');

SectionName, groupName y fieldName están presentes en etc/system.archivo xml de su módulo.

El código anterior obtendrá automáticamente el valor de configuración de la tienda actualmente vista.

Si desea obtener el valor de configuración de cualquier otra tienda que no sea la tienda actualmente vista, puede especificar el ID de la tienda como segundo parámetro de la función getStoreConfig de la siguiente manera:

$store = Mage::app()->getStore(); // store info
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName', $store);
 145
Author: Mukesh Chapagain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-23 10:10:02

Debe usar el siguiente código

$configValue = Mage::getStoreConfig(
                   'sectionName/groupName/fieldName',
                   Mage::app()->getStore()
               ); 

Mage::app()->getStore() esto agregará el código de la tienda en los valores de recuperación para que pueda obtener los valores de configuración correctos para la tienda actual esto evitará los valores incorrectos de la tienda porque magento también se usa para varias tiendas/vistas, por lo que debe agregar el código de la tienda para obtener cualquier cosa en magento.

Si tenemos más de una tienda o varias vistas configuradas, esto asegurará que obtengamos valores para la tienda actual

 22
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-19 06:45:39

Magento 1.x

(magento 2 ejemplo proporcionado a continuación)

SectionName, groupName y fieldName están presentes en etc/system.archivo xml del módulo.

Sintaxis de PHP:

Mage::getStoreConfig('sectionName/groupName/fieldName');

Desde dentro de un editor en el administrador, como el contenido de una página CMS o Bloque Estático; la descripción/breve descripción de una Categoría de Catálogo, Producto de Catálogo, etc.

{{config path="sectionName/groupName/fieldName"}}

Para el enfoque de trabajo "Dentro de un editor", el el valor del campo se debe pasar a través de un filtro para {{ ... }} contenido a analizar. Fuera de la caja, Magento hará esto para las descripciones de Categorías y Productos, así como para las Páginas de CMS y los bloques estáticos. Sin embargo, si está publicando el contenido dentro de su propio script de vista personalizado y desea que estas variables se analicen, puede hacerlo de la siguiente manera:

<?php
    $example = Mage::getModel('identifier/name')->load(1);
    $filter  = Mage::getModel('cms/template_filter');
    echo $filter->filter($example->getData('field'));
?>

Sustituyendo a identificador/name con los valores a apropiados para el modelo que está cargando, y campo con el nombre del atributo que desea generar, que puede contener {{ ... }} ocurrencias que necesitan ser analizadas.

Magento 2.x

Desde cualquier clase de bloque que extienda \Magento \ Framework \ View \ Element \ AbstractBlock

$this->_scopeConfig->getValue('sectionName/groupName/fieldName');

Cualquier otra clase PHP:

Si la clase (y ninguna de ellas es padre) no inyecta \Magento\Framework\App\Config\ScopeConfigInterface a través del constructor, tendrás que agregarla a tu clase.

// ... Remaining class definition above...

/**
 * @var \Magento\Framework\App\Config\ScopeConfigInterface
 */
protected $_scopeConfig;

/**
 * Constructor
 */
public function __construct(
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
    // ...any other injected classes the class depends on...
) {
  $this->_scopeConfig = $scopeConfig;
  // Remaining constructor logic...
}

// ...remaining class definition below...

Una vez que se haya inyectado en su clase, ahora puede obtener los valores de configuración del almacén con el mismo ejemplo de sintaxis dado anteriormente para las clases de bloque.

Tenga en cuenta que después de modificar la lista de parámetros __construct() de cualquier clase, es posible que tenga que borrar sus clases generadas, así como el directorio de inyección de dependencias: var/generation & var/di

 18
Author: Darren Felton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-21 20:27:19

Por ejemplo, si desea obtener la DIRECCIÓN de CORREO ELECTRÓNICO de config->almacenar direcciones de correo electrónico. Puede especificar desde qué tienda desea la dirección:

$store=Mage::app()->getStore()->getStoreId(); 
/* Sender Name */
Mage::getStoreConfig('trans_email/ident_general/name',$store); 
/* Sender Email */
Mage::getStoreConfig('trans_email/ident_general/email',$store);
 2
Author: claudio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-14 12:20:33