Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 30. 5. 2007, 19:15:23
Ahoj potřeboval bych poradit se smarty.
Když mám v kořenu např. index.php a v něm odkaz na šablonu $smarty->display('index.tpl');, která je v adresáři templates, vše funguje ok Když však mám index.php v nějakém adresáři, např. administrator/index.php a v něm $smarty->display('index.administrator.tpl');, pak smarty nedokáže najít šablonu v adresáři templates Je možný to nějak vyřešit? |
||
luka Profil * |
#2 · Zasláno: 30. 5. 2007, 20:19:09
Smarty to je jedno kde to mas. Nieje jedno ako pristupujes k smarty, tym myslim k triede smarty
|
||
H13 Profil |
#3 · Zasláno: 30. 5. 2007, 21:04:19 · Upravil/a: H13
Ke tride smarty mam pristup v pohode, hazi to tuto chybu:
Warning: Smarty error: unable to read resource: "index.administrator.tpl" in ...smartySmarty.class.php on line 1095 Samozřejmě bych mohl hodit tu třídu do adresáře admin, ale mít pro každý adresář vlastní třídu smarty ? |
||
luka Profil * |
#4 · Zasláno: 30. 5. 2007, 21:15:34
<?php
include_once(../smarty/Smarty.class.php"); $smarty = new smarty; $smarty->smarty_dir(); $smarty->compile_check = true; //$smarty->debugging = true; $smarty->display('index.tpl'); ?> toto ti musi fungovat. Jasne ak mas triedu smarty v takomto subore a adresari a sablona sa vola index.tpl |
||
H13 Profil |
#5 · Zasláno: 30. 5. 2007, 22:52:55
No to mi samozřejmě funguje, pokud je index.php (soubor, ve kterém je tento kód) v kořenu:
configs smarty templates templates_c index.php nefunguje mi to v případě, pokud je index.php v nějakém adresáři: configs smarty templates templates_c admin/index.php |
||
zero0x Profil |
#6 · Zasláno: 31. 5. 2007, 06:24:27
to musi fungovat,
uisti sa ze mas dobre nastavene premenne prostredia, ze je subor vytvoreny - k templates si si nastavil relativnu, alebo absolutnu cestu?? ak sa da, tak nastav absolutnu potom pristupujes display('adresar/subor.tpl') |
||
H13 Profil |
#7 · Zasláno: 31. 5. 2007, 13:42:45 · Upravil/a: H13
- soubor.tpl - je vytvořený
- přístup k smarty - je v pořádku, normálně funguje když se k němu přistupuje z kořene - když zadám do souboru index.php, který není přímo v kořenu, ale v jiném adresáři (admin) absolutní cestu k šabloně, pak dostanu tuto chybu: Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory to znamená, že jede vše ok, když mám soubor v kořenu, jakmile ho dám do nějakého adresáře, pak nemůže najít adresář se šablonami, protože je vnořen do adresáře .... ??? když změním ve třídě smarty základní nastavení, např. templates na ../templates, templates na ../templates, pak to funguje... jenže to zase nefunguje v souboru, který je v kořenu, protože ten potřebuje buď templates nebo ./templates ... takže, když vše nechám nepozměněno, pak soubor v kořenu - index.php funguje a když vložím do souboru index.php v adresáři admin: $smarty->template_dir = '../templates'; $smarty->compile_dir = '../templates_c'; $smarty->config_dir = '../configs'; tedy změním proměnné v třídě smarty, pak to vše funguje... |
||
luka Profil * |
#8 · Zasláno: 31. 5. 2007, 20:53:21
chlape ak mas sablonu v templates a nazvyva sa moja_sablona.tpl tak k nej pristupis asi takto
<?php include_once(../smarty/Smarty.class.php"); $smarty = new smarty; $smarty->smarty_dir(); $smarty->compile_check = true; //$smarty->debugging = true; $smarty->display('moja_sablona.tpl'); ?> ale ak tu sablonu das do nejakeho foldru s nazvom moj_folder a je v foldri templates tak k nej pristupis takto <?php include_once(../smarty/Smarty.class.php"); $smarty = new smarty; $smarty->smarty_dir(); $smarty->compile_check = true; //$smarty->debugging = true; $smarty->display('moj_folder/moja_sablona.tpl'); ?> ale da sa aj tak ak nechces aby sa defaultne nazyval folder templates templates ale trebars moje_templates tak pred tym musis urobit asi toto moje_nastavenie_templates.php <?php include_once(../smarty/Smarty.class.php"); class moje_nastavenie_templates extends Smarty{ function smarty_dir(){ $this->template_dir = "moje_templates/"; $this->compile_dir = "/moje_templates_c/"; } } ?> a potom v index.php odkial volas smarty nepouzijes klasicky napr. toto <?php include_once(../smarty/Smarty.class.php"); $smarty = new smarty; $smarty->smarty_dir(); $smarty->compile_check = true; //$smarty->debugging = true; $smarty->display('moj_folder/moja_sablona.tpl'); ?> ale musis volat tvoju novu triedu ktora zdedila triedu smarty. Takze asi takto <?php include_once(../smarty/Smarty.class.php"); $smarty = new moje_nastavenie_templates; $smarty->smarty_dir(); $smarty->compile_check = true; //$smarty->debugging = true; $smarty->display('moj_folder/moja_sablona.tpl'); ?> Tak asi tak, dufa ze som na nic nezabudol |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0