Saya hanya ingin memahami artinya
<block type="page/html" name="root" output="toHtml" template="example/view.phtml">
Saya mendapat banyak referensi dari Google dan memahami banyak hal tentangnya tetapi saya masih belum dapat memahami type="page/html"
bagaimana cara membentuk suatu tipe untuk modul kustom saya.
Tolong jelaskan
type="A/B"
Beri tahu saya dari mana A dan B ini berasal?
Untuk memahami lebih lanjut tentang tipe blok magento berikut ini adalah beberapa tipe blok bawaan yang banyak digunakan dalam tata letak.
core/template
: Blok ini membuat template yang ditentukan olehtemplate
atributnya. Mayoritas blok yang ditentukan dalam tata letak memiliki tipe atau subtipecore/template
.page/html
: Ini adalah subtipe daricore/template
dan mendefinisikan blok root. Semua blok lainnya adalah blok anak dari blok ini.page/html_head
: Mendefinisikan bagian kepala HTML dari halaman yang berisi elemen termasuk JavaScript, CSS, dll.page/html_header
: Mendefinisikan bagian header dari halaman yang berisi logo situs, link atas, dll.page/template_links
: Blok ini digunakan untuk membuat daftar tautan. Tautan yang terlihat di footer dan area header menggunakan tipe blok ini.core/text_list
: Beberapa blok seperticontent
,left
,right
dll adalah dari jeniscore/text_list
. Saat blok ini dirender, semua blok turunannya dirender secara otomatis tanpa perlu memanggilgetChildHtml()
metode tersebut.page/html_wrapper
: Blok ini digunakan untuk membuat blok pembungkus yang merender blok anaknya di dalam tag HTML yang disetel oleh tindakansetHtmlTagName
. Tag default adalah<div>
jika tidak ada elemen yang disetel.page/html_breadcrumbs
: Blok ini mendefinisikan remah roti di halaman.page/html_footer
: Mendefinisikan area footer halaman yang berisi link footer, pesan hak cipta, dll.core/messages
: Blok ini membuat pesan kesalahan / sukses / pemberitahuan.page/switch
: Blok ini dapat digunakan untuk bahasa atau pengalih toko.Ini adalah daftar jenis blok yang umum digunakan. Ada banyak tipe blok lain yang digunakan dalam implementasi tema lanjutan.
sumber
halaman adalah FrontendName didefinisikan dalam
etc/config.xml
file html adalah nama kelas blokketerangan lebih lanjut:
di baris ini
type(type="page/html")
tentukan nama kelas blok yang terkait dengan Andatemplate(template="example/view.phtml">)
dan nama unik untuk setiap blok.lihat dulu struktur foldernya
kami mengatur
FrontendName = 'mymodule'
di hello.php Anda membuat sebuah fungsi
dan sekarang masuk ke halaman xml layout Anda:
<block type="mymodule/data" name="xyz" template="example/view.phtml">
di sini mydata adalah nama frontenddan sekarang datang ke template Anda
di sini Anda dapat memanggil langsung fungsi mydata ()
Suka
sekarang Anda bisa mendapatkan output Anda di browser "Blokir disebut"
sumber
Tidak, Anda tidak salah. Tapi
"<!-- script -->"
mungkin membingungkan. Mari kita perjelas: seperti jawaban yang dinyatakan di atas, ini adalah alias, yang terdiri dari dua bagian, bagian pertama ("A") itu sendiri adalah alias yang Anda tentukan untuk kelas modul Anda di modul Andaconfig.xml
, yang kedua adalah jalur yang berhubungan dengan nilai node. Ini bersama-sama ("A" + huruf besar "B") akan diterjemahkan ke nama kelas, menggunakan bagian pertama (nilai node "A") persis seperti yang Anda definisikan (perhatikan huruf besar / kecil jika Anda tidak menginginkan jam penderitaan) dan bagian kedua ditulis dengan huruf kapital setelah setiap garis bawah. Jadi, mulailah dengan contoh A / B dengan blok dan konfigurasi ini:Dalam runtime
A/B
akan diselesaikan oleh config Magento untukVendor_Module_Block_B
yang kemudian akan dimasukkan oleh autoload dari lintasan berikut:public/app/local/Vendor/Module/Block/B.php
. Untuk mendapatkan pemahaman yang lebih baik, saya menyarankan Anda untuk melihatMage_Core_Model_Config::getGroupedClassName()
,Mage_Core_Model_Config::getModelInstance()
danVarien_Autoload::autoload()
.sumber
Saya tidak tahu tentang tipe "B", tetapi "A" merujuk ke tag nama modul Anda di config.xml
Contoh di file config.xml:
nb: saya harap saya tidak salah ..
sumber