Magento 2 - ¿Cómo obtener los valores de configuración de la extensión en los archivos phtml?

21

Estoy trabajando con Magento 2 - beta.

Pero no puedo encontrar cómo obtener los valores de configuración en los archivos phtml.

por ejemplo: quiero obtener los valores de configuración de mis módulos personalizados en el Magento_Catalog/templates/product/list.phtmlarchivo.

Alguien sabe cómo hacer esto?

John
fuente
¿Puedes dar un ejemplo de la vida real? ¿Qué es exactamente lo que estás tratando de recuperar?
Marius

Respuestas:

43

Puede crear una función para obtener valores de configuración en el ayudante de su módulo personalizado.

<?php
namespace Vendor\Module\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    public function getConfig($config_path)
    {
        return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

Luego puede obtener los valores de configuración para llamar a esta función en cualquier archivo phtml.

$this->helper('Vendor\Module\Helper\Data')->getConfig('section/group/field');
Micro
fuente
1
¡Gracias por señalar que ScopeConfigInterface está disponible en la clase de ayuda abstracta! Me salvó redefiniéndolo.
Robbie Averill
¿Cómo funcionaría esto con un valor de configuración predeterminado? Estoy tratando de descubrir cómo configurar el número de teléfono en la configuración de la tienda y mostrarlo en el encabezado.phtml
Philip Deatherage
@Dmitry Creo que todavía necesitas inyectar \Magento\Framework\App\Config\ScopeConfigInterfaceen el constructor de ayudante
fmsthird
6

Otra forma es la siguiente

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('group/field/value');
Rushvi
fuente
Nunca debe usar el administrador de objetos para la creación de instancias de un modelo
Dave
Este de aquí está muuuy mal.
medina
0

Corrección en la respuesta de Rushvi: su section/group/field

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('section/group/field');

Además, si desea agregar un filtro de tienda, por ejemplo, desea mostrar texto si se guarda en el nivel de configuración de la tienda, simplemente agregue lo siguiente:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORES;
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('carriers/freeshipping/extra_info',$storeScope);

En segundo lugar para las críticas: es bueno incluirlo en el constructor de su clase de bloque a través de DI. Aquí es solo un concepto

Hassan Ali Shahzad
fuente