O objetivo de um módulo que estou desenvolvendo atualmente é adicionar um tipo de imagem personalizado chamado "opengraph_image". Eu adicionei um novo atributo EAV no meu script InstallData.php, que funciona bem. Quando agora faço login no back-end do Magento2 e altero um produto, posso escolher o tipo de imagem "opengraph_image" enquanto carrega ou edita imagens do produto.
No entanto, no front-end, eu gostaria de exibir esta imagem. Portanto, criei um arquivo etc / view.xml no meu módulo com o seguinte conteúdo:
<?xml version="1.0"?>
<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Esites_SEO:etc/custom.xsd">
<media>
<images module="Magento_Catalog">
<image id="opengraph_image" type="opengraph_image">
<width>265</width>
<height>265</height>
</image>
</images>
</media>
</view>
Mas agora eu recebo o seguinte erro:
Invalid XML in file /var/www/html/vhosts/magento2/app/code/Esites/SEO/etc/view.xml:
Element 'image', attribute 'type': [facet 'enumeration'] The value 'opengraph_image' is not an element of the set {'thumbnail', 'small_image', 'image', 'swatch_image', 'swatch_thumb'}.
Line: 5
Element 'image', attribute 'type': 'opengraph_image' is not a valid value of the local atomic type.
Line: 5
O motivo é que ele não parece carregar meu custom.xsd localizado em: app/code/Esites/SEO/etc/custom.xsd
onde eu defino o opengraph_image. Em vez disso, parece carregar apenas o arquivo XSD padrão:vendor/magento/framework/Config/etc/view.xsd
O conteúdo do meu custom.xsd é uma cópia (para fins de teste) deste view.xsd original, onde adicionei o seguinte na linha 75:
<xs:enumeration value="opengraph_image"/>
O front-end funciona sem erros se eu incluir a linha acima no arquivo view.xsd original. Segui a documentação em: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html e meus caminhos são construídos de acordo com as informações nessa página. O cache é limpo várias vezes.
o que estou perdendo?
module="Magento_Catalog"
paramodule="Esites_SEO"
?