W rozdziale “TWORZENIE KONFIGURACJI SYSTEMOWEJ” pokazałem w jaki sposób tworzyć ustawienia systemowe w sklepie Magento.

Teraz dowiesz się jak odczytać te dane na frontendzie.
Zacznij od przygotowania modułu i konfiguracji z poprzedniego rozdziału lub kliknij tutaj.
Kolejnym krokiem jest utworzenie pliku Data.php w katalogu Helper (/app/code/Geek/MyModule/Helper):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php namespace Geek\MyModule\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 ); } } |
Klasa ta rozszerza klasę systemową AbstractHelper, co pozwala na użycie metod z interfejsu ScopeInterface.
Metoda getConfig pobiera jeden parametr ($config_path), czyli adres do identyfikatora pola formularza z konfiguracji system.xml.
Na przykład: getConfig(mymodule/general/enable)

A w szablonie np: test.phtml (view/frontend/templates/test.phtml), korzystając z uchwytu klasy Helper ($this->helper) odczytujemy wartość systemową w ten sposób:
1 2 3 4 5 |
<?php echo $this->helper('Geek\MyModule\Helper\Data')->getConfig('mymodule/general/enable'); ?> |
Aby szablon wyświetlił się na stronie sklepu musimy dodać jeszcze dwa pliki.
Test.php (Block/Test.php):
1 2 3 4 5 6 7 |
<?php namespace Geek\MyModule\Block; class Test extends \Magento\Framework\View\Element\Template { } |
Ten niewielki fragment kodu pozwala wskazać szablon dla modułu. W tym przykładzie nadpiszemy domyślny układ default.xml (view/frontend/layout/default.xml):
1 2 3 4 5 6 7 8 |
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:View/Layout:etc/page_configuration.xsd"> <body> <referenceContainer name="main"> <block class="Geek\MyModule\Block\Test" template="test.phtml" /> </referenceContainer> </body> </page> |
Nowy blok z zawartością template=”test.phtml” pojawi się w obrębie sklepu w każdym kontenerze o nazwie main.
I to wszystko. Na koniec sprawdź działanie modułu. W tym celu odśwież jakąkolwiek podstronę sklepu i zobacz czy dane z formularza wyświetlają się prawidłowo.