magento 2: я хочу отобразить изображение в модуле phtml файла шаблона

21

Я хочу отобразить изображение в файле шаблона модуля. Когда кто-то устанавливает мой модуль, он видит это изображение. Могу ли я хранить свои изображения в каталоге моего модуля или нет?

Анкуш Чаухан
источник
Ohoo ankush bhai magento2
Амит Сингх

Ответы:

33

Да, вы можете хранить изображения в веб-каталогах вашего модуля в зависимости от области ваших шаблонов. Путь: поставщик / модуль / вид / {frontend | adminhtml} / web / images /

Затем в ваших * .phtml файлах вы можете отобразить изображение:

<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
Мирослав Петров
источник
Если я хочу этот URL в помощнике, как я могу получить его? или в файле js?
Нитеш
В помощнике вы можете ввести \Magento\Framework\View\Result\PageFactoryкласс в свой конструктор, а $pageFactoryзатем вызвать $pageFactory->getViewFileUrl()метод. Для файлов JS я понятия не имею, как вы можете получить его.
Мирослав Петров
1

Мне нравится в base-64 кодировать мои PNG и вставлять их. Я использую https://www.base64-image.de .

        <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ....=">
ChristianTL
источник
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'); ?>"
        }
    }
}

Вы должны использовать скрипт инициализации виджета magento, чтобы запустить свой javascript с опцией «imagename». Этот метод инициализации обычно выполняется в файлах phtml. Мой код предполагает, что ваше изображение находится в Vendor / Module / view / {frontend | adminhtml} / web / images /

Для получения дополнительной информации вы можете увидеть документацию magento 2. http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html

Amad
источник