What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{section} adalah untuk mengulang melalui array data, tidak seperti {foreach} yang dipakai untuk mengulang melalui satu array asosiatif. Setiap {section} tag harus dipasangkan dengan penutup{/section} tag.
Nama Atribut | Tipe | Diperlukan | Default | Deskripsi |
---|---|---|---|---|
name | string | Ya | n/a | Nama seksi |
loop | mixed | Ya | n/a | Nilai untuk menentukan sumber iterasi pengulangan |
start | integer | Tidak | 0 | Posisi indeks di mana seksi akan diulang. Jika nilai negatif, awal posisi dihitung dari akhir array. Sebagai contoh, jika ada tujuh nilai dalam pengulangan array dan awalnya adalah -2, indeks awal adalah 5. Nilai yang tidak benar (nilai di luar panjang pengulangan array) otomatis dipotong ke nilai terdekat yang benar. |
step | integer | Tidak | 1 | Nilai step akan dipakai untuk melewati pengulangan array. Sebagai contoh, step=2 akan berulang pada indeks 0,2,4, dst. Jika step negatif, ia akan mundur kembali melewati array. |
max | integer | Tidak | n/a | Menyetel angka maksimum berapa kali seksi akan mengulang. |
show | boolean | Tidak | TRUE | Menentukan apakan menampilkan seksi ini atau tidak |
Atribut yang diperlukan adalah name dan loop.
name dari {section} bisa berupa apapun yang anda suka, terdiri dari huruf, angka dan garis bawah, seperti variabel PHP.
{section} dapat diulang, dan nama {section} yang diulang harus unik dari yang lainnya.
Atribut loop, biasanya sebuah array nilai, menentukan jumlah berapa kali {section} akan mengulang. Anda juga dapat mengirimkan integer sebagai nilai pengulangan.
Ketika mencetak variabel di dalam {section}, {section} name harus diberikan di sebelah nama variabel dalam [kurung kotak].
{sectionelse} dijalankan saat tidak ada lagi nilai dalam variabel loop.
{section} juga memiliki variabelnya sendiri yang menangani properti {section}. Properti ini dapat diakses sebagai: {$smarty.section.name.property} di mana "name" adalah atribut name.
properti {section} adalah index, index_prev, index_next, iteration, first, last, rownum, loop, show, total.
Teladan 7-30. Mengulang array sederhana dengan {section} assign() array ke Smarty
Template yang menampilkan array
Contoh di atas akan menampilkan:
|
Teladan 7-32. Penamaan {section} name dari {section} bisa apa saja sesuai yang anda inginkan, lihat variabel PHP. Ini dipakai untuk mereferensi data di dalam {section}.
|
Teladan 7-34. {section} mendemonstrasikan variabel loop Contoh ini mengasumsikan bahwa $custid, $name dan $address adalah semua array yang berisi jumlah nilai yang sama. Pertama naskah php menempatkan array ke Smarty.
Variabel loop hanya menentukan jumlah berapa kali untuk mengulang. Anda dapat mengakses variabel MANAPUN dari template di dalam {section}
Contoh di atas akan menampilkan:
|
Teladan 7-35. {section} yang berulang {section} dapat diulang sedalam yang anda suka. Dengan {section} yang diulang, anda bisa mengakses struktur data yang kompleks, seperti array multi dimensi. Ini adalah contoh naskah .php yang menempatkan array.
Dalam contoh ini, $contact_type[customer] adalah sebuah array tipe kontak untuk kustomer saat ini.
Contoh di atas akan menampilkan:
|
Teladan 7-36. Contoh database dengan {sectionelse} Hasil pencarian database (misal ADODB atau PEAR) ditempatkan ke Smarty
Template yang menampilkan hasil database dalam tabel HTML
|
index berisi indeks array saat ini, dimulai dengan nol atau atribut start bila diberikan. Ia bertambah satu atau dengan atribut step bila diberikan.
Catatan Teknis: Jika properti step dan start tidak diubah, maka pekerjaan ini sama seperti properti iteration, kecuali ia dimulai dengan nol daripada satu.
index_prev adalah indeks pengulangan sebelumnya. Pada pengulangan pertama, ini disetel -1.
index_next adalah indeks pengulangan berikutnya. Pada pengulangan terakhir, ini masih satu lagi daripada indeks saat ini, memperhatikan setelan atribut step, jika diberikan.
Teladan 7-38. properti index, index_next dan index_prev
Template untuk menampilkan array di atas dalam sebuah tabel
Contoh di atas akan menampilkan tabel yang berisi sebagai berikut:
|
iteration berisi iterasi pengulangan saat ini dan dimulai dari satu.
Catatan: Ini tidak dipengaruhi oleh properti {section} start, step dan max, tidak seperti properti index. iteration juga dimulai dengan satu daripada nol tidak seperti index. rownum adalah alias untuk iteration, keduanya sama.
Teladan 7-39. Properti iteration dari seksi
Template untuk menampilkan setiap elemen lain array $arr dengan step=2
Contoh di atas akan menampilkan:
Contoh lain yang menggunakan properti iteration untuk mengeluarkan blok header tabel setiap lima baris. Menggunakan fungsi {if} dengan operator mod.
|
last disetel TRUE jika iterasi seksi saat ini adalah yang terakhir.
Teladan 7-40. properti {section} first dan last Contoh ini mengulang array $customers, mengeluarkan blok header pada iterasi pertama dan terakhir mengeluarkan blok footer. Juga menggunakan properti total.
|
rownum berisi iterasi pengulangan saat ini, dimulai dengan satu. Ini adalah nama lain dari iterasi, cara kerjanya sama persis.
loop berisi angka indeks terakhir yang mengulang {section}. Ini bisa dipakai di dalam atau setelah {section}.
Teladan 7-41. properti {section} loop
Contoh di atas akan menampilkan:
|
show dipakai sebagai parameter ke seksi dan berupa nilai boolean. Jika FALSE, seksi tidak akan ditampilkan. Jika terdapat {sectionelse}, akan ditampilkan sebagai alternatif.
Teladan 7-42. show properti Boolean $show_customer_info sudah dikirimkan dari aplikasi PHP, untuk mengatur apakah seksi ditampilkan atau tidak.
Contoh di atas akan menampilkan:
|
total berisi jumlah iterasi yang akan {section} mengulangnya. Ini bisa dipakai di dalam atau setelah {section}.
Lihat juga {foreach} dan $smarty.section.