Filter Output
Ketika template dipanggil via
display() atau
fetch(), outputnya bisa
dikirimkan melalui satu atau lebih filter output. Ini berbeda dari
postfilters
karena postfilters beroperasi pada template terkompilasi sebelum disimpan
ke disk, sedangkan filter output beroperasi pada output template ketika ia
dijalankan.
Filter output bisa
teregistrasi atau diambil dari
direktori plugins dengan
menggunakan metode
load_filter()
atau dengan menyetel variabel
$autoload_filters.
Smarty akan mengoper output template sebagai argumen pertama,
dan mengharapkan fungsi untuk mengembalikan hasil proses.
Teladan 15-4. Menggunakan template outputfilter
<?php // simpan ini dalam aplikasi anda function protect_email($tpl_output, &$smarty) { $tpl_output = preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $tpl_output); return $tpl_output; }
// daftarkan outputfilter $smarty->register_outputfilter('protect_email'); $smarty->display('index.tpl');
// sekarang setiap ada alamat email dalam output template akan mempunyai // perlindungan sederhana terhadap spambots ?>
|
|
Lihat juga
register_outpurfilter(),
load_filter(),
$autoload_filters,
postfilters dan
$plugins_dir.