Мета модуля, який я зараз розробляю, - додати користувальницький тип зображення під назвою "opengraph_image". Я додав новий атрибут EAV, хоч мій скрипт InstallData.php, який прекрасно працює. Коли я зараз увійдіть у сервер Magento2 та змініть продукт, я можу вибрати тип зображення "opengraph_image" під час завантаження чи редагування зображень товару.
Однак на фронті я хотів би показати це зображення. Тому я створив файл etc / view.xml у своєму модулі із наступним вмістом:
<?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>
Але тепер я отримую таку помилку:
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
Причина в тому, що, здається, не завантажую мій custom.xsd, розташований у: app/code/Esites/SEO/etc/custom.xsd
де я визначаю opengraph_image. Замість цього, здається, просто завантажується файл XSD за замовчуванням:vendor/magento/framework/Config/etc/view.xsd
Вміст мого custom.xsd - це копія (для тестування) цього оригінального view.xsd, де я додав наступне у рядку 75:
<xs:enumeration value="opengraph_image"/>
Frontend працює без помилок, якщо я включу рядок вище в оригінальний файл view.xsd. Я дотримувався документації на веб-сайті: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html і мої шляхи будуються відповідно до інформації на цій сторінці. Кеш очищається кілька разів.
Що я пропускаю?
module="Magento_Catalog"
наmodule="Esites_SEO"
?