smarty局部缓存

Smarty提供了强大的 缓存功能。但有时我们并不希望整篇文档都被缓存,而是有选择的缓存某一部分内容或某一部分内容不被缓存。例如你在页面上端使用一个带有广告条位置的模板, 广告条可以包含任何HTML、图象、FLASH等混合信息. 因此这里不能使用一个静态的链接,同时我们也不希望该广告条被缓存. 这就需要在 insert 函数指定,同时需要一个函数取广告条的内容信息。smarty也提供了这种缓存控制能力。

我们可以使用$smarty->register_block($params,&$smarty)使整篇页面中的某一块不被缓存。

index.tpl:

XML/HTML代码
  1. <div align=‘center’>
  2. Page created: {“0″|date_format:”%D %H:%M:%S”}
  3. <{dynamic}>
  4. Now is: {“0″|date_format:”%D %H:%M:%S”}
  5. … do other stuff …
  6. <{/dynamic}>
  7. </div>

index.php:

XML/HTML代码
  1. function smarty_block_dynamic($param, $content, &$smarty) {
  2. return $content;
  3. }
  4. $smarty = new Smarty;
  5. $smarty->caching = true;
  6. $smarty->register_block(‘dynamic’, ‘smarty_block_dynamic’, false);
  7. if(!$smarty->is_cached()){
  8. …….
  9. }
  10. $smarty->display(‘index.tpl’);

注解:
定义一个函数,函数名格式为:smarty_type_name($params, &$smarty)
type为block
name为用户自定义标签名称,在这里是{dynamic}
两个参数是必须的,即使在函数中没有使用也要写上。两个参数的功能同上。

单独这样使用,可能你发现并没有实现您所需要的功能,这是因为还需要在smarty_compiler.class.php中修改几行代码:

在上面的这个文件里面搜索$smarty->register_function(‘current_time’,’smarty_function_current_time’,true);这个字符串,大约在702行。

把这行代码修改为:

if($tag_command == ‘dynamic’) $this->_plugins[‘block’][$tag_command] = array($plugin_func, null, null, null, false);
else $this->_plugins[‘block’][$tag_command] = array($plugin_func, null, null, null, true);

之后再打开您刚才写的页面就会发现部分缓存的功能已经实现了。

28 thoughts on “smarty局部缓存

  1. Pingback: 카지노게임사이트

  2. Pingback: Casino Online

  3. Pingback: Creative Agency in Orlando

  4. Pingback: Gerrard

  5. Pingback: ww88.com

  6. Pingback: havaianas disney stylish ice blue flip flop

  7. Pingback: xe88 apk

  8. Pingback: pasarqq

  9. Pingback: đăng ký fun88

  10. Pingback: link vào w88

  11. Pingback: 카지노

  12. Pingback: ads agency

  13. Pingback: imitation omega watches

  14. Pingback: 바카라사이트

  15. Pingback: Poker Online

  16. Pingback: 조커바카라

  17. Pingback: San Diego Criminal Lawyer BJW Law

  18. Pingback: 조커바카라

  19. Pingback: https://sme.edu.pl/

  20. Pingback: Kingpen

  21. Pingback: Professor Herb CBD - CBD Hemp Flowers

  22. Pingback: keluaran sdy

  23. Pingback: main dapat bonus

  24. Pingback: milton keynes taxi

  25. Pingback: Dumps with Pin - Best Dumps with Pin Shop for yours chose

  26. Pingback: can replica omega diver watches go underwater

  27. Pingback: كلمات اغاني

  28. Pingback: live sgp

Leave a Reply