magento 2: quiero mostrar una imagen en el archivo phtml de plantilla de módulo

21

Quiero mostrar una imagen en el archivo de plantilla del módulo. Cuando alguien instala mi módulo, puede ver esa imagen. ¿Puedo almacenar mis imágenes dentro de mi directorio de módulos o no?

Ankush Chauhan
fuente
Ohoo ankush bhai magento2
Amit Singh

Respuestas:

33

Sí, puede almacenar imágenes en los directorios web de su módulo dependiendo del área de sus plantillas. La ruta es: Vendor / Module / view / {frontend | adminhtml} / web / images /

Luego, en sus archivos * .phtml, puede mostrar la imagen:

<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
Miroslav Petroff
fuente
Si quiero esa url en ayuda, ¿cómo puedo obtenerla? o en el archivo js?
Nitesh
En helper puede inyectar \Magento\Framework\View\Result\PageFactoryclase en su constructor como $pageFactoryy luego llamar al $pageFactory->getViewFileUrl()método. Para los archivos js no tengo idea de cómo puedes obtenerlo.
Miroslav Petroff
1

Me gusta codificar en base 64 mis PNG e incorporarlos. Yo uso https://www.base64-image.de .

        <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ....=">
ChristianTL
fuente
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'); ?>"
        }
    }
}

Usaría el script de inicialización del widget de magento para iniciar su javascript con la opción "imagename" definida. Esta técnica de inicialización generalmente se realiza en archivos phtml. Mi código asume que su imagen está en Proveedor / Módulo / vista / {frontend | adminhtml} / web / images /

Para más información, puede ver la documentación de magento 2. http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html

Amad
fuente