Magento 2 - Come ottenere i valori di configurazione dell'estensione nei file phtml?


21

Sto lavorando con Magento 2 - beta.

Ma non riesco a trovare come ottenere i valori di configurazione nei file phtml.

ad es .: Voglio ottenere i valori di configurazione dei miei moduli personalizzati nel Magento_Catalog/templates/product/list.phtmlfile.

Qualcuno sa come farlo?


puoi fare un esempio di vita reale? che cosa stai cercando di recuperare esattamente?
Marius

Risposte:


43

È possibile creare una funzione per ottenere valori di configurazione nell'helper del modulo personalizzato.

<?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
        );
    }
}

Quindi è possibile ottenere i valori di configurazione per chiamare questa funzione in qualsiasi file phtml.

$this->helper('Vendor\Module\Helper\Data')->getConfig('section/group/field');

1
Grazie per aver sottolineato che ScopeConfigInterface è disponibile dalla classe helper astratta! Mi ha salvato ridefinendolo.
Robbie Averill,

Come funzionerebbe con un valore di configurazione predefinito? Sto cercando di capire come ottenere il numero di telefono impostato nella configurazione del negozio e visualizzarlo in header.phtml
Philip Deatherage,

@Dmitry Penso che devi ancora iniettare \Magento\Framework\App\Config\ScopeConfigInterfacenel costruttore
dell'helper

6

Un altro modo è come di seguito

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

Non dovresti mai usare il gestore oggetti per l'istanza di un modello
Dave,

Questo qui è tremendamente sbagliato.
medina,

0

Correzione nella risposta di Rushvi: la sua section/group/field

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

Inoltre, se si desidera aggiungere un filtro negozio, ad esempio, si desidera visualizzare il testo se si salva a livello di configurazione del negozio, aggiungere semplicemente quanto segue:

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

In secondo luogo per le critiche: è utile includerle nel costruttore della classe di blocchi tramite DI. Ecco solo un concetto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.