File Magento 2 html dan file phtml dalam proses templat kustom?

10

Ketika saya memeriksa dari dokumentasi magento 2 tentang mengubah konten minicart.

Ada dua cara:

  1. Di halaman ini: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

Kami mengubahnya dengan menyesuaikan minicart.phml dan menempatkannya di: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. Tetapi di halaman lain: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

Kami menyesuaikannya di content.html dan menempatkannya di:

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

Jadi pertanyaan-pertanyaan ini adalah:

Bagaimana magento 2 memutuskan kapan harus menggunakan file html dan file phtml?

Apakah ini terkait dengan 3 mode di Magento 2: Default, Pengembang dan Produksi?

thienphucvx
sumber

Jawaban:

10

Baik .phtmldan .htmlfile adalah bagian dari lapisan tampilan dalam perbedaan Magento 2 menjadi phtmlfile bekerja dengan Blok yang menurut Magento Docs adalah kelas PHP khusus yang biasanya (tetapi tidak selalu) terhubung ke templat erat. Blok biasanya bekerja dengan lapisan model (inti Magento) untuk memanipulasi data dan mengembalikan hasil / respons ke templat (file .phtml atau .html). File-file ini digunakan oleh file layout dalam mengatur template untuk blok tertentu dan seterusnya.

htmlfile di ujung yang lain hanya digunakan untuk menampilkan konten di perpustakaan frontend dan javascript seperti knockout JS menggunakannya sesuai. File-file ini juga digunakan untuk memuat konten AJAX.

Jenis layanan
sumber
6

file phtml digunakan sebagai template php backend. file html digunakan sebagai templat javascript frontend.

Ini tidak terkait dengan mode Magento.

KAndy
sumber
Saya kira tidak, Sudahkah Anda memeriksa setiap file modul phtml di frontend / templat. Apakah semua file itu hanya digunakan untuk templat php backend? Mengapa folder tampilan setiap modul memiliki dua folder: frontend dan backend?
thienphucvx
ketika saya katakan frontend / backend maksud saya di server / di sisi klien. Adminhtml folder adalah Admin Panel dan frontend adalah bagian Toko Depan (dapat memiliki bagian frontend / backend)
KAndy
Saya pikir saya mengerti maksud Anda tentang html yang diberikan oleh javascript. Tapi saya tidak jelas mengapa mereka menggunakannya. Misalnya, kami menyesuaikan konten minicart di content.html . Tetapi untuk mengkustomisasi formulir dalam ulasan, kami mengeditnya di form.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/… )
thienphucvx
m2 memiliki banyak kode lawas (m1). tidak semua bagian dihidupkan kembali, tetapi proses pemindahan rendering konten di sisi klien akan dilanjutkan. dan Anda dapat menggunakan rendering sisi klien
KAndy
Jadi artinya di masa depan, hanya ada file html untuk sisi klien?
thienphucvx
2

@thienphucvx Dokumentasi di http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html salah.

Jawaban yang benar ada di dalam: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html .

Jika Anda melihat file yang direferensikan di tautan pertama vendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtmlAnda akan melihat bahwa Anda tidak dapat mengubah penempatan item dalam minicart dengan tombol checkout.

Ini karena bagian dari minicart ada di sini: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

Ketika saya menemukan ketidakkonsistenan dalam dokumen, seperti yang Anda miliki di sini, saya membuka Permintaan Tarik di GitHub. Ada terlalu banyak dokumen bagi tim dokumentasi untuk mendapatkan 100% benar sepanjang waktu. Buka PR, mereka akan meninjau pembaruan Anda..dan jika mereka sendiri tidak yakin, mereka akan menjangkau otoritas internal tentang masalah tersebut dan menghubungi Anda dengan umpan balik tentang Anda benar atau tidak. Mereka ramah. PERGI untuk itu!

ryanF
sumber