Witam

Mam problem z cachowaniem przy uruchomieniu funkcji jako plugin. Uprościłem całość i mam 4 proste pliki.

index.php

  1. <?php
  2. require ('libs/Smarty.class.php');
  3.  
  4. $page = new Smarty();
  5. $page->plugins_dir[]='plugins';
  6.  
  7. $page->display('index.tpl');
  8.  
  9. ?>


templates/index.tpl

  1. {testfunction}


templates/menu.tpl

  1. {$menu}


plugins/function.testfunction.php

  1. <?php
  2.  
  3. function smarty_function_testfunction($params, &$template)
  4. {
  5.  
  6. $template->setCaching(\Smarty::CACHING_LIFETIME_SAVED);
  7. $template->setCacheLifetime(3600);
  8.  
  9. if (!$template->isCached('menu.tpl')) {
  10. $template->assignGlobal('menu',rand(0,100000));
  11. }
  12.  
  13. $output = $template->fetch('menu.tpl');
  14. $template->setCaching(\Smarty::CACHING_OFF);
  15. return $output;
  16. }
  17. ?>


Cache się niestety nie tworzy. Jeśli to co jest w funkcji przeniosę bezpośrednio do index.php z małymi zmianami plik się cachuje, więc to raczej nie wina uprawnień itp. spraw. Sprawdzałem na najnowszej wersji 3.0.7.

Ma ktoś pomysł co robię nie tak?

PS. Być może to kolejna sprawa z zasięgiem w nowym Smarty i dość nieprzewidywalnym (jak dla mnie) zachowaniem właśnie przy uruchomieniu pluginu.

Pozdrawiam