Prefilters/Postfilters
Plugin prefilter dan postfilter sangat mirip dalam konsep; di mana
keduanya berbeda dalam eksekusi -- lebih tepatnya waktu eksekusinya.
string smarty_prefilter_name (string $source, object &$smarty)
Prefilters dipakai untuk memproses sumber template segera sebelum
kompilasi. Parameter pertama ke fungsi prefilter adalah sumber
template, kemungkinan diubah oleh beberapa prefilters lain. Plugin
seharusnya mengembalikan sumber yang diubah. Catatan bahwa sumber
ini tidak disimpan di mana pun, hanya dipakai untuk kompilasi.
string smarty_postfilter_name (string $compiled, object &$smarty)
Postfilters dipakai untuk memproses output terkompilasi dari template
(kode PHP) segera setelah kompilasi dikerjakan sebelum template
terkompilasi disimpan ke sistem file. Parameter pertama ke fungsi
postfilter adalah kode template terkompilasi, kemungkinan diubah oleh
postfilters lainnya. Plugin seharusnya mengembalikan versi yang diubah
atas kode ini.
Teladan 16-7. plugin prefilter
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: prefilter.pre01.php * Tipe: prefilter * Nama: pre01 * Kegunaan: Mengubah tag html ke huruf kecil. * ------------------------------------------------------------- */ function smarty_prefilter_pre01($source, &$smarty) { return preg_replace('!<(\w+)[^>]+>!e', 'strtolower("$1")', $source); } ?>
|
|
Teladan 16-8. plugin postfilter
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: postfilter.post01.php * Tipe: postfilter * Nama: post01 * Kegunaan: Kode output yang mendaftarkan semua var template saat * ini. * ------------------------------------------------------------- */ function smarty_postfilter_post01($compiled, &$smarty) { $compiled = "<pre>\n<?php print_r(\$this->get_template_vars()); ?>\n</pre>" . $compiled; return $compiled; } ?>
|
|
Lihat juga
register_prefilter(),
unregister_prefilter()
register_postfilter(),
unregister_postfilter().