Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Mengontrol Plugins ynd Bisa Di-cache' Output

Sejak plugin Smarty-2.6.0, plugins yang bisa di-cache dapat dideklarasikan saat meregistrasinya. Parameter ketiga pada register_block(), register_compiler_function() dan register_function() disebut $cacheable dan standarnya TRUE yang juga merupakan tabiat plugins dalam Smarty versi sebelum 2.6.0

Ketika meregistrasi sebuah plugin dengan $cacheable=false, plugin dipanggil setiap kali halaman ditampilkan, meskipun halaman berasal dari cache. Fungsi plugin berlaku sedikit mirip fungsi {insert}.

Sebaliknya dari {insert} atribut plugins standarnya tidak di-cache. Bisa dideklarasikan untuk di-cache dengan parameter keempat $cache_attrs. $cache_attrs adalah array nama-atribut yang harus di-cache, agar fungsi-plugin memperoleh nilai seperti pertama kali halaman dituliskan ke cache, setiap kali ia diambil dari cache.

Teladan 14-10. Menghindari output plugin di-cache

caching = true; function remaining_seconds($params, &$smarty) { $remain = $params[\'endtime\'] - time(); if($remain >= 0){ return $remain . \' second(s)\'; }else{ return \'done\'; } } $smarty->register_function(\'remaining\', \'remaining_seconds\', false, array(\'endtime\')); if (!$smarty->is_cached(\'index.tpl\')) { // ambil $obj dari db dan tempatkan... $smarty->assign_by_ref(\'obj\', $obj); } $smarty->display(\'index.tpl\'); ?>'); ?>

di mana index.tpl adalah:

Time Remaining: {remaining endtime=$obj->endtime}

Jumlah detik sampai endtime $obj dicapai, perubahan pada setiap tampilan halaman, meskipun bila halaman di-cache. Karena atribut endtime di-cache. obyek harus ditarik dari database ketika halaman dituliskan ke cache tapi tidak pada permintaan halaman berikutnya.

Teladan 14-11. Menghindari seluruh bagian template di-cache

caching = 1; function smarty_block_dynamic($param, $content, &$smarty) { return $content; } $smarty->register_block(\'dynamic\', \'smarty_block_dynamic\', false); $smarty->display(\'index.tpl\'); ?>'); ?>

where index.tpl is:

Page created: {'0'|date_format:'%D %H:%M:%S'}

{dynamic}

Now is: {'0'|date_format:'%D %H:%M:%S'}

... do other stuff ...

{/dynamic}

Ketika mengambil ulang halaman, anda akan mencatat bahwa kedua tanggal berbeda. Satu "dynamis" dan satu "statis". Anda dapat melakukan apapun antara {dynamic}...{/dynamic} dan pastikan ia tidak akan di-cache seperti bagian halaman lainnya.

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors