magento 2: Chcę wyświetlić obraz w pliku phtml szablonu modułu

21

Chcę wyświetlić obraz w pliku szablonu modułu. Kiedy ktoś instaluje mój moduł, może zobaczyć ten obraz. Czy mogę przechowywać moje obrazy w katalogu mojego modułu, czy nie?

Ankush Chauhan
źródło
Ohoo ankush bhai magento2
Amit Singh

Odpowiedzi:

33

Tak, możesz przechowywać obrazy w swoich katalogach internetowych modułów w zależności od obszaru twoich szablonów. Ścieżka to: Vendor / Module / view / {frontend | adminhtml} / web / images /

Następnie w plikach * .phtml możesz wyświetlić obraz:

<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
Miroslav Petroff
źródło
Jeśli chcę ten adres URL w pomocnika, jak mogę go zdobyć? lub w pliku js?
Nitesh
W pomocniku możesz wstrzyknąć \Magento\Framework\View\Result\PageFactoryklasę do swojego konstruktora, $pageFactorya następnie wywołać $pageFactory->getViewFileUrl()metodę. W przypadku plików js nie mam pojęcia, jak je zdobyć.
Miroslav Petroff
1

Lubię kodować base-64 moje PNG i wstawiać je. Korzystam z https://www.base64-image.de .

        <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ....=">
ChristianTL
źródło
0
<script type="text/x-magento-init">
{
    <?php /* this defines the target of the widget */ ?>
    "#target_id": {
        <?php /* this defines the widget */ ?>
        "image.widget.name": {
            "imagename" : "<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>"
        }
    }
}

Używałbyś skryptu inicjującego widget magento do uruchomienia javascript ze zdefiniowaną opcją „imagename”. Ta technika inicjalizacji jest zwykle wykonywana w plikach phtml. Mój kod zakłada, że ​​twój obraz znajduje się w Vendor / Module / view / {frontend | adminhtml} / web / images /

Aby uzyskać więcej informacji, zobacz dokumentację magento 2. http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html

Amad
źródło