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?


¿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');

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');

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.