Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty] Problem z cache
Forum PHP.pl > Forum > PHP
Skie
Witam,
Używam na swojej stronie Smarty Templates i napotkałem pewien problem. Otóż pewna podstrona jest cache'owana, ale jest na niej kilka zmiennych, które chciałbym, by były generowane dynamicznie (bez użycia cache).

Próbowałem z {dynamic}{/dynamic} ale mimo to strona jest nadal cała cache'owana.
Fragment mojego kodu PHP wygląda tak:

  1. <?php
  2. // nagłówek
  3. require_once("includes/head.php");
  4.  
  5. // ustawianie cache
  6. $temp -> caching = 1;
  7. $temp -> compile_check = false;
  8.  
  9. // początek - określanie, która zakładka ma być włączona.
  10. $option[0] = (!$_GET['action']) ? 'active' : 'unactive';
  11. $option[1] = ($_GET['action'] == 'effects') ? 'active' : 'unactive';
  12. $option[2] = ($_GET['action'] == 'battles') ? 'active' : 'unactive';
  13. $option[3] = ($_GET['action'] == 'quests') ? 'active' : 'unactive';
  14.  
  15. [...tutaj część właściwa strony...]
  16.  
  17. // stopka
  18.  
  19. $temp -> assign(array("Option" => $option, "Lang" => $lang, "Action" => $_GET['action']));
  20. function smarty_block_dynamic($param, $content, &$smarty) {
  21. return $content;
  22. }
  23. $temp->register_block('dynamic', 'smarty_block_dynamic', false);
  24.  
  25. $temp -> display("page.tpl", $user -> id);
  26. ?>


I TPL

Kod
{dynamic}

<table width=500 cellpadding=0 cellspacing=0 align=center rules=cols frame=box>
<tr>
<td class="{$Option[0]}"><a class=upper_table_panel href=#>{$Lang[0]}</a></td>
<td class="{$Option[1]}"><a class=upper_table_panel href=#>{$Lang[1]}</a></td>
<td class="{$Option[2]}"><a class=upper_table_panel href=#>{$Lang[2]}</a></td>
<td class="{$Option[3]}"><a class=upper_table_panel href=#>{$Lang[3]}</a></td>
</tr>
</table>

{/dynamic}


Chodzi mi o to, aby ta tabela nie była cache'owana. (A dokładniej {$Option[]})
Używam Smarty 2.6.19.

Byłbym wdzięczny za pomoc / wskazówkę winksmiley.jpg
rzymek01
dawno się nie bawiłem smarty, ale z tego co pamiętam w takich sytuacjach nie można tego TPL dawać do cachu smile.gif
jezoo
Sprawdz w ten sposob, ze zamiast w caching 1 daj 0:
  1. <?php
  2. $temp->caching = 0;
  3. ?>


ewentualnie spróbuj zastosowac funkcje insert link
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.