L'obiettivo di un modulo che sto attualmente sviluppando è quello di aggiungere un tipo di immagine personalizzato chiamato "opengraph_image". Ho aggiunto un nuovo attributo EAV attraverso il mio script InstallData.php che funziona bene. Quando accedo ora al backend Magento2 e modifico un prodotto, posso scegliere il tipo di immagine "opengraph_image" durante il caricamento o la modifica delle immagini del prodotto.
Tuttavia, sul frontend vorrei visualizzare questa immagine. Pertanto ho creato un file etc / view.xml nel mio modulo con il seguente contenuto:
<?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>
Ma ora ricevo il seguente errore:
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
Il motivo è che non sembra caricare il mio custom.xsd che si trova in: app/code/Esites/SEO/etc/custom.xsd
dove definisco opengraph_image. Invece sembra semplicemente caricare il suo file XSD predefinito:vendor/magento/framework/Config/etc/view.xsd
Il contenuto del mio custom.xsd è una copia (a scopo di test) di questo view.xsd originale in cui ho aggiunto quanto segue alla riga 75:
<xs:enumeration value="opengraph_image"/>
Il frontend funziona senza errori se includo la riga sopra nel file view.xsd originale. Ho seguito la documentazione su: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html e i miei percorsi sono costruiti in base alle informazioni in quella pagina. La cache viene cancellata più volte.
Cosa mi sto perdendo?
module="Magento_Catalog"
inmodule="Esites_SEO"
?