Tujuan dari modul yang saya kembangkan saat ini adalah untuk menambahkan jenis gambar khusus yang disebut "opengraph_image". Saya menambahkan atribut EAV baru melalui skrip InstallData.php saya yang berfungsi dengan baik. Ketika saya sekarang masuk ke backend Magento2 dan mengubah produk saya dapat memilih jenis gambar "opengraph_image" saat mengunggah atau mengedit gambar produk.
Namun, di frontend saya ingin menampilkan gambar ini. Karena itu saya membuat file etc / view.xml dalam modul saya dengan konten berikut:
<?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>
Tapi sekarang saya mendapatkan kesalahan berikut:
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
Alasannya adalah sepertinya tidak memuat custom.xsd saya terletak di: di app/code/Esites/SEO/etc/custom.xsd
mana saya mendefinisikan opengraph_image. Sebaliknya tampaknya hanya memuat file XSD default:vendor/magento/framework/Config/etc/view.xsd
Konten custom.xsd saya adalah salinan (untuk tujuan pengujian) dari view.xsd asli ini di mana saya menambahkan yang berikut pada baris 75:
<xs:enumeration value="opengraph_image"/>
Frontend tidak berfungsi tanpa kesalahan jika saya menyertakan baris di atas dalam file view.xsd yang asli. Saya mengikuti dokumentasi di: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html dan jalur saya dibuat sesuai dengan informasi pada halaman itu. Cache dihapus beberapa kali.
Apa yang saya lewatkan?
module="Magento_Catalog"
kemodule="Esites_SEO"
?