Le but d'un module que je développe actuellement est d'ajouter un type d'image personnalisé appelé "opengraph_image". J'ai ajouté un nouvel attribut EAV via mon script InstallData.php qui fonctionne bien. Lorsque je me connecte maintenant au backend Magento2 et modifie un produit, je peux choisir le type d'image "opengraph_image" lors du téléchargement ou de la modification des images du produit.
Cependant, sur le frontend, je voudrais afficher cette image. J'ai donc créé un fichier etc / view.xml dans mon module avec le contenu suivant:
<?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>
Mais maintenant, j'obtiens l'erreur suivante:
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
La raison en est qu'il ne semble pas charger mon custom.xsd situé dans: app/code/Esites/SEO/etc/custom.xsd
où je définis l'opengraph_image. Au lieu de cela, il semble simplement charger son fichier XSD par défaut:vendor/magento/framework/Config/etc/view.xsd
Le contenu de mon custom.xsd est une copie (à des fins de test) de ce view.xsd d'origine où j'ai ajouté ce qui suit à la ligne 75:
<xs:enumeration value="opengraph_image"/>
Le frontend fonctionne sans erreur si j'inclus la ligne ci-dessus dans le fichier view.xsd d'origine. J'ai suivi la documentation sur: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html et mes chemins sont construits selon les informations sur cette page. Le cache est effacé plusieurs fois.
Qu'est-ce que je rate?
module="Magento_Catalog"
pourmodule="Esites_SEO"
?