เป้าหมายของโมดูลที่ฉันกำลังพัฒนาอยู่ก็คือการเพิ่มประเภทภาพที่กำหนดเองที่เรียกว่า "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"/>
ส่วนหน้าทำงานได้โดยไม่มีข้อผิดพลาดหากฉันรวมบรรทัดด้านบนไว้ในไฟล์ view.xsd ดั้งเดิม ฉันติดตามเอกสารเกี่ยวกับ: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.htmlและเส้นทางของฉันจะถูกสร้างตามข้อมูลในหน้านั้น ล้างแคชหลายครั้ง
ฉันพลาดอะไรไป
module="Magento_Catalog"
ไปmodule="Esites_SEO"
ไหม?