Das Ziel eines Moduls, das ich gerade entwickle, ist das Hinzufügen eines benutzerdefinierten Bildtyps mit dem Namen "opengraph_image". Ich habe ein neues EAV-Attribut über mein InstallData.php-Skript hinzugefügt, das einwandfrei funktioniert. Wenn ich mich jetzt im Magento2-Backend anmelde und ein Produkt ändere, kann ich beim Hochladen oder Bearbeiten von Produktbildern den Bildtyp "opengraph_image" auswählen.
Am Frontend möchte ich jedoch dieses Bild anzeigen. Aus diesem Grund habe ich in meinem Modul eine etc / view.xml-Datei mit folgendem Inhalt erstellt:
<?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>
Aber jetzt bekomme ich folgenden Fehler:
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
Der Grund dafür ist, dass meine custom.xsd anscheinend nicht geladen wird. Sie befindet sich in: app/code/Esites/SEO/etc/custom.xsd
wo ich das opengraph_image definiere. Stattdessen scheint es nur die Standard-XSD-Datei zu laden:vendor/magento/framework/Config/etc/view.xsd
Der Inhalt meiner custom.xsd ist eine Kopie (zu Testzwecken) dieser ursprünglichen view.xsd, wobei ich in Zeile 75 Folgendes hinzugefügt habe:
<xs:enumeration value="opengraph_image"/>
Das Frontend funktioniert fehlerfrei, wenn ich die obige Zeile in die ursprüngliche view.xsd-Datei einbinde. Ich habe die Dokumentation unter http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html befolgt und meine Pfade werden gemäß den Informationen auf dieser Seite erstellt. Der Cache wird mehrmals geleert.
Was vermisse ich?
module="Magento_Catalog"
zumodule="Esites_SEO"
?