Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][smarty] Jakby smarty nie rozpoznawalo z ktorego katalogu ma brac szablony
Berkovits
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.08.2007

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


Mam problem z systemem szablonów Smarty.
[Odnosnie Smarty, to nie wiem, czy nie zrezygnowac z tego. Nie zachwycilo mnie.]
Uproscilem problem, czyszczac go z wszystkiego, co niepotrzebne.

Oto katalogi/pliki:

|- smarty (katalog z calym silnikiem smarty)
|- templates (katalog z napisanymi przeze mnie szablonami)
|   |- 1 (katalog)
|   |   |- a.tpl (plik)
|   |- 2 (katalog)
|       |- a.tpl (plik)
|- templates_c (katalog do przechowywania skompilowanych przez smarty szablonow)
|- 1.php
|- 2.php

Zawartosc plikow:
a.tpl z katalogu templates/1:
  1. <?php
  2. Plik a.tpl z katalogu 1
  3. ?>

a.tpl z katalogu templates/2:
  1. <?php
  2. Plik a.tpl z katalogu 2
  3. ?>

1.php:
  1. <?php
  2. require('./smarty/Smarty.class.php'); //dolaczam biblioteke smarty
  3. $tpl = new Smarty; //nowy objekt smarty
  4. $tpl -> template_dir = './templates/1'; //definiuje katalog z szablonami
  5. $tpl -> compile_dir = './templates_c/'; //definiuje katalog dla skompilowanych szablonow
  6. $tpl -> display('a.tpl'); //wyswietl szablon a.tpl
  7. ?>

2.php:
  1. <?php
  2. require('./smarty/Smarty.class.php');
  3. $tpl = new Smarty;
  4. $tpl -> template_dir = './templates/2';
  5. $tpl -> compile_dir = './templates_c/';
  6. $tpl -> display('a.tpl');
  7. ?>

Uruchomienie 1.php powinno wyswietlic: Plik a.tpl z katalogu 1.
Uruchomienie 2.php powinno wyswietlic: Plik a.tpl z katalogu 2.
Niestety, tak sie nie dzieje (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Uruchamiajac 1.php jest OK, ale uruchamiajac 2.php wyswietla mi sie to samo, co przy 1.php.
Po usunieciu plikow wygenerowanych przez smarty w katalogu compile_dir, tzn z templates_c, uruchomienie 2.php jest OK, ale juz 1.php jest zle (czyli pierwsze wywolanie jest dobre, a drugie juz nie).
Czy jest jakas elegancka metoda na przezwyciezenie tego problemu bez koniecznosci uswania skompilowanego szablonu przed uruchomieniem polecenia $tpl->display?

___________________________________________________________________
Juz wiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Po prostu wszedzie tam, gdzie definiuje sie template_dir jako './templates/jakiskatalog';
powinno sie tez zdefiniowac katalog compile_dir  jako './templates_c/jakiskatalog'.
No i oczywiscie stworzyc w /templates_c katalog jakiskatalog

Teraz juz dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 23.08.2025 - 10:32