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?
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?
Respostas:
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'); ?>" />
\Magento\Framework\View\Result\PageFactory
classe no seu construtor como $pageFactory
e chamar o $pageFactory->getViewFileUrl()
método. Para arquivos js, não tenho idéia de como você pode obtê-lo.
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....=">
<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