Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] cachowanie niecałego pliku tpl
Forum PHP.pl > Forum > Przedszkole
Regyam
Mam taki pytanko otóż zaczynam ze smarty, juz troche porobilem ale mam prbolemik. Poniewaz chce uzyc cachowania, ktore byloby bardzo dobrym rozwiazaniem, ale:
Mam np logowanie w kazdej poid stronie na stronie czyli w kazdym pliku tpl. No i jezeli ktos sie zaloguje to musi odczekac czas az sie usunie plik cache wedlug okreslonego lifetime'a. Mozna to rozwiazac poprzez usuwanie tplow jak sie ktos zaloguje, ale to rozwiazanie jest bezsensowne jezeli logowalo by sie sporo osob. Jak myslicice jak to rozwiazac by kod ktory tyczy logowania w pliku .tpl nie byl cachowany?
Ertai
Prawde mowiac to ciezko mi jest ciebie zrozumiec smile.gif ale moze rozwiazaniem twojego problemu bedzie uzywanie znacznikow

{if}{/if}? Po prostu masz plik tpl i jezeli ktos jest zalogowany to wysylasz do smartiego np cos takiego $smarty -> assign('zalogowany',1);
a pozniej w tym tpl dajesz taki blok kodu:
  1. <?php
  2. {if $zalogowany eq 1}
  3.  
  4.  TUTAJ CALY KOD HTML STRONY JAKA WIDAC PO ZALOGOWANIU UZYTKOWNIKA
  5. {/if}
  6. ?>
drPayton
Dokumentacja!
Regyam
Zastosowalem sie do tego co podales drPayton, a dokladnie do drugiego przykladu: mam plik kategoria.php wyglada tak:
tzn to tylko jego czesc ale ta najwazniejsza:
  1. <?php
  2. $smarty->cache_lifetime = 100;
  3. $smarty->caching = 2;
  4. function smarty_block_dynamic($param, $content, &$smarty) {
  5. return $content;
  6. }
  7. $smarty->register_block('dynamic', 'smarty_block_dynamic', false);
  8. $smarty->display("kategoria.tpl", $_GET[id]);
  9. ?>

A w pliku kategoria.tpl tak:
  1. <?php
  2. {dynamic}
  3. {if $zalogowany eq 1}
  4. pologowaniu
  5. {else}
  6. logowanie
  7. {/if}
  8. {/dynamic}
  9. ?>


  1. Warning: _include(templates_c/%%95^953^95353E4E%%kategoria.tpl.inc) [function.-include]: failed to open stream: No such file or directory in /home.10.21/gitowo/www/libs/Smarty.class.php on line 1923
  2.  
  3. Warning: _include() [function.include]: Failed opening 'templates_c/%%95^953^95353E4E%%kategoria.tpl.inc' for inclusion (include_path='.:/usr/local/lib/php') in /home.10.21/gitowo/www/libs/Smarty.class.php on line 1923

To na samej gorzae strony. A tam gdzie mialo wysiwetlic sie dynamiczne logowanie:
{nocache:0d87536e10473b724e04526cfeaf8119#0}

nie wiecie jak mi pomoc?
drPayton
W odpowiedzi na PW:
Nie wiem. Spróbuj może usunąć cache i odpal raz jeszcze. Nie znam się na tym, nie korzystam ze Smarty
Regyam
No bez cache dziala tongue.gif tylko wlasnie to jest moj problem z tym dynamicznym polem w cachowanym pliku, ma ktos jakis pomysl?


Wie ktos moze jak zastosowac {insert} do tego mojego kodu? czy w ogóle da sie do tego przerobic. Bo jak widze to na {dynamic} i moj blad nikt nie ma pomysłu.
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.