Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Smarty3]Nie działa cache w pluginach, W smarty 2 wszystko działało
favik
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 18.05.2010

Ostrzeżenie: (0%)
-----


Witam,
używałem od pewnego czasu cachowania tylko fragmentów szablonu smarty wg opisu ze strony: http://diabl0.gazeta.ie/2008/11/smarty-%E2...owane-szablony/
Tyle że robiłem to nie na insert tylko na function np w ten sposób:


  1. <?php
  2. function smarty_function_mojpanel($params,&$smarty){
  3. $smarty->caching=true;
  4. $smarty->cache_lifetime=900;
  5. if (!$smarty->is_cached('mojpanel.tpl')){
  6.  
  7. $tersc = 'treść z bazy danych';
  8.  
  9. $smarty->assign('tersc',$tersc);
  10. }
  11. $output=$smarty->fetch('mojpanel.tpl');
  12. $smarty->caching=false;
  13. return $output;
  14. }
  15. ?>



Do tej pory wszystko działało jak należy. Jednak po zaktualizowaniu smarty z bardzo starej wersji 2 do wersji 3 (3.07, 3.08, 3.1) i przepisaniu pluginów w ten sposób:
  1. <?php
  2. function smarty_function_mojpanel($params,$template){
  3. $template->caching=2;
  4. $template->cache_lifetime=900;
  5. if (!$template->isCached('mojpanel.tpl')){
  6.  
  7. $tersc = 'treść z bazy danych';
  8.  
  9. $template->assign('tersc',$tersc);
  10. }
  11. $output=$template->fetch('mojpanel.tpl');
  12. $template->caching=0;
  13. return $output;
  14. }
  15. ?>


cache z pluginów nie jest tworzony, za każdym razem jest pobierana treść z bazy danych. Jednak gdy zmienię w samej klasie smarty $caching = 2; wtedy cache normalnie działa także dla tych treści wywoływanych z pluginów. Wygląda to tak jakby nie dało się włączać cache w samym pluginie, co w smarty 2 działało. Nie mogę się doszukać w czym leży wina? Czy smarty już uniemożliwia cache w pluginach? Gdzieś jest to blokowane? Proszę o pomoc ;/
...


Sprawdzałem na najnowszym smarty 2 (2.6.26) i pierwszy sposób z pluginami działa na smarty 3.0b7 już nie, próbowałem też stosować różne kombinacje z:
$template->setCaching(Smarty::CACHING_LIFETIME_SAVED);
$template->setCacheLifetime(300);
ale nadal lipa. Upieram się nadal na te pluginy, bo takie cache modułowe bardzo ułatwia mi pracę, ale może ktoś będzie miał pomysł jak to inaczej rozwiązać?




Ten post edytował favik 13.08.2011, 09:02:48
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:39