{insert}
Tag {insert} bekerja sangat mirip dengan tag {include},
kecuali bahwa tag {insert} TIDAK di-cache ketika
caching template dihidupkan. Ia akan
dijalankan pada setiap permintaan template.
Nama AtributTipeDiperlukanDefaultDeskripsinamestringYan/aNama fungsi insert (insert_name)assignstringTidakn/aNama variabel template yang outputnya akan ditempatiscriptstringTidakn/aNama naskah php yang disertakan sebelum fungsi insert dipanggil[var ...][var type]Tidakn/avariabel untuk mengirimkan fungsi insert
Katakanlah anda mempunyai template dengan slot spanduk di atas halaman.
Spanduk bisa berisi campuran HTML, gambar, flash, dll. maka kita tidak bisas
cukup menggunakan link statis di sini, dan kita tidak ingin konten ini
di-cache dengan halaman. Sampailah tag {insert}: template mengetahui
#banner_location_id# dan nilai #site_id# (dikumpulkan dari
file config), dan perlu untuk
memanggil fungsi guna memperoleh konten spanduk.
fungsi {insert}
{* contoh mengambil spanduk *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
Pada contoh ini, kita menggunakan nama getBanner dan
mengirimkan parameter #banner_location_id# dan #site_id#. Smarty akan
mencari fungsi bernama insert_getBanner() dalam aplikasi PHP anda,
mengirimkan nilai #banner_location_id# dan #site_id# sebagai argumen
pertama dalam array asosiatif. Semua nama fungsi {insert} dalam aplikasi
anda harus didahului dengan "insert_" guna menghindari kemungkinan
konflik ruang-nama fungsi. Fungsi insert_getBanner() anda harus melakukan
sesuatu dengan nilai yang dikirimkan dan mengembalikan hasil. Hasil ini
kemudian ditampilkan dalam template di tempat tag {insert}. Dalam contoh
ini, Smarty akan memanggil fungsi ini:
insert_getBanner(array("lid" => "12345","sid" => "67890"));
dan menampilkan hasil yang dikembalikan di tempat tag {insert}.
Jika anda menyertakan atribut assign, output
dari tag {insert} akan ditampati variabel template
ini daripa menjadi output bagi template.
Menempatkan output ke variabel template tidak terlalu berguna jika
caching dihidupkan.
Jika anda menyertakan atribut script, naskah php ini
akan disertakan (hanya sekali) sebelum funsi {insert}
dijalankan. Ini kasus di mana fungsi insert mungkin belum ada, dan naskah php
harus disertakan lebih dulu agar ia bekerja.
Path dapat berupa absolut, atau relatif ke
$trusted_dir.
Ketika $security
dihidupkan, naskah harus berada dalam
$trusted_dir.
Obyek Smarty dikriimkan sebagai argumen kedua. Dengan cara ini anda dapat
mereferensi dan mengubah informasi dalam obyek Smarty dari dalam fungsi
{insert}.
Catatan Teknis
Dimungkinkan bagian template tidal di-cache. Jika anda menghidupkan
caching, tag {insert}
tidak akan di-cache. Ia akan dijalankan secara dinamis setiap kali
halaman dibuat, bahkan di dalam halaman yang di-cache. Ini bekerja baik
untuk hal-hal seperti spanduk, polling, laporan cuaca, hasil pencarian,
area umpan balik pengguna, dll.
Lihat juga
{include}