ไฟล์ html Magento 2 และไฟล์ phtml ในกระบวนการแม่แบบกำหนดเอง


10

ในขณะที่ฉันตรวจสอบจากเอกสารวีโอไอพี 2 เกี่ยวกับการเปลี่ยนเนื้อหา minicart

มีสองวิธี:

  1. ในหน้านี้: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

เราเปลี่ยนโดยกำหนดminicart.phmlและวางใน: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. แต่ในหน้าอื่น ๆ : http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

เราปรับแต่งมันในcontent.htmlและวางไว้ใน:

app/design/frontend/OrangeCo/orange/Magento_Checkout/web/template/minicart/content.html

ดังนั้นคำถามเหล่านี้คือ:

magento 2 ตัดสินใจเลือกเวลาที่จะใช้ไฟล์ html และไฟล์ phtml

สิ่งนี้เกี่ยวข้องกับ 3 โหมดใน Magento 2: ค่าเริ่มต้นผู้พัฒนาและการผลิตหรือไม่

คำตอบ:


10

ทั้งสองไฟล์.phtmlและ.htmlเป็นส่วนหนึ่งของเลเยอร์มุมมองใน Magento 2 ความแตกต่างของphtmlไฟล์คือการทำงานกับBlockซึ่งตามMagento Docsเป็นคลาส PHP พิเศษที่โดยปกติแล้ว (แต่ไม่เสมอไป) เชื่อมต่อกับเทมเพลตอย่างใกล้ชิด บล็อกมักจะทำงานกับ model layer (core Magento) เพื่อจัดการข้อมูลและส่งคืนผลลัพธ์ / การตอบกลับไปยังเทมเพลต (ไฟล์. phtml หรือ. html) ไฟล์เหล่านี้ถูกใช้โดยไฟล์เลย์เอาต์ในการตั้งค่าเทมเพลตสำหรับบล็อกบางประเภทและอื่น ๆ

htmlไฟล์ในส่วนอื่น ๆ จะใช้เพื่อแสดงเนื้อหาในส่วนหน้าและห้องสมุด javascript เช่นสิ่งที่น่าพิศวง JS ใช้พวกเขาตาม ไฟล์เหล่านี้ใช้สำหรับการโหลดเนื้อหา AJAX


6

ไฟล์ phtml ที่ใช้เป็นเทมเพลต PHP ส่วนหลัง ไฟล์ html ที่ใช้เป็นเทมเพลตจาวาสคริปต์ส่วนหน้า

นี่ไม่เกี่ยวข้องกับโหมด Magento


ฉันไม่คิดอย่างนั้นคุณตรวจสอบทุกไฟล์ phtml โมดูลในส่วนหน้า / เทมเพลต ไฟล์เหล่านั้นใช้สำหรับเทมเพลต php ส่วนหลังเท่านั้นหรือไม่ ทำไมโฟลเดอร์มุมมองของทุกโมดูลมีสองโฟลเดอร์: ส่วนหน้าและส่วนหลัง
thienphucvx

เมื่อฉันพูด frontend / backend ฉันหมายถึงบนเซิร์ฟเวอร์ / ในฝั่งไคลเอ็นต์ โฟลเดอร์ adminhtml คือแผงผู้ดูแลระบบและส่วนหน้าคือส่วนหน้าร้าน (สามารถมีส่วนหน้า / ส่วนหลัง)
KAndy

ฉันคิดว่าฉันได้รับคะแนนของคุณเกี่ยวกับ html โดย javascript แต่ฉันไม่ชัดเจนว่าทำไมพวกเขาถึงใช้มัน ตัวอย่างเช่นเรากำหนดเนื้อหาของ minicart บนcontent.html แต่สำหรับการปรับแต่งแบบฟอร์มในการตรวจสอบเราแก้ไขมันในform.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/ ...... )
thienphucvx

m2 มีรหัสดั้งเดิม (m1) มากมาย ไม่ใช่ทุกส่วนที่ถูก refactored แต่กระบวนการของการย้ายการแสดงผลของเนื้อหาในฝั่งไคลเอ็นต์จะดำเนินการต่อ และคุณสามารถใช้การเรนเดอร์ฝั่งไคลเอ็นต์
KAndy

ดังนั้นในอนาคตมีไฟล์ html สำหรับฝั่งไคลเอ็นต์เท่านั้นหรือไม่
thienphucvx

2

@thienphucvx เอกสารในhttp://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme/theme-inherit.htmlไม่ถูกต้อง

คำตอบที่ถูกต้องคือภายใน: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

หากคุณต้องดูไฟล์ที่อ้างอิงในลิงค์แรกvendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtmlคุณจะเห็นว่าคุณไม่สามารถแก้ไขตำแหน่งของรายการใน minicart ด้วยปุ่มชำระเงิน

นี่เป็นเพราะส่วนหนึ่งของ minicart อยู่ที่นี่: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

เมื่อฉันพบความไม่สอดคล้องกันในเอกสารเช่นคุณมีที่นี่ฉันเปิดคำขอดึงใน GitHub มีเอกสารจำนวนมากเกินไปสำหรับทีมเอกสารที่จะต้องแก้ไข 100% ตลอดเวลา เปิด PR พวกเขาจะตรวจสอบการอัปเดตของคุณและหากพวกเขาไม่แน่ใจตัวเองพวกเขาจะติดต่อหน่วยงานภายในเกี่ยวกับเรื่องนั้นและติดต่อกลับพร้อมคำติชมเกี่ยวกับคุณว่าถูกต้องหรือไม่ พวกเขาเป็นมิตร ไปเลย!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.