magento 2: Quero exibir uma imagem no arquivo phtml do modelo de módulo

21

Quero exibir uma imagem no arquivo de modelo do módulo. Quando alguém instala meu módulo, ele pode ver essa imagem. Posso armazenar minhas imagens dentro do diretório do módulo ou não?

Ankush Chauhan
fonte
Ohoo ankush bhai magento2
Amit Singh

Respostas:

33

Sim, você pode armazenar imagens nos diretórios da web do módulo, dependendo da área dos seus modelos. O caminho é: Fornecedor / Módulo / visualização / {frontend | adminhtml} / web / images /

Em seus arquivos * .phtml, você pode exibir a imagem:

<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
Miroslav Petroff
fonte
Se eu quiser esse URL no helper, como posso obtê-lo? ou no arquivo js?
Nitesh
No auxiliar, você pode injetar \Magento\Framework\View\Result\PageFactoryclasse no seu construtor como $pageFactorye chamar o $pageFactory->getViewFileUrl()método. Para arquivos js, não tenho idéia de como você pode obtê-lo.
Miroslav Petroff
1

Eu gosto de codificar a base-64 dos meus PNGs e incorporá-los. Eu uso https://www.base64-image.de .

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

Você usaria o script de inicialização do widget do magento para iniciar seu javascript com a opção "imagename" definida. Essa técnica de inicialização geralmente é feita em arquivos phtml. Meu código pressupõe que sua imagem está em Fornecedor / Módulo / view / {frontend | adminhtml} / web / images /

Para mais informações, você pode ver a documentação do magento 2. http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html

Amad
fonte