Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Smarty] Dziwny problem
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam

Mam taki plik php :

  1. <?php
  2. // load Smarty library
  3. require('/Apache/htdocs/PrackaMgr/smarty/libs/Smarty.class.php');
  4. //require('/Apache/htdocs/PrackaMgr/smarty/smarty_setup.php');
  5.  
  6. $smarty = new Smarty;
  7.  
  8. $smarty->template_dir = '/Apache/htdocs/PrackaMgr/smarty/templates';
  9. $smarty->config_dir = '/Apache/htdocs/PrackaMgr/smarty/config';
  10. $smarty->cache_dir = '/Apache/htdocs/PrackaMgr/smarty/cache';
  11. $smarty->compile_dir = '/Apache/htdocs/PrackaMgr/smarty/templates_c';
  12.  
  13. $smarty->assign('name','fish boy!');
  14. $smarty->assign('surname','bad fck boy!');
  15.  
  16. $smarty->display('index.tpl');
  17. ?>


Jak widac korzysta on z szablonow Smarty i po uruchomieniu go wszystko pieknie dziala.
Teraz zeby za kazdym razem nie przepisywac dir dla smarty zrobilem sobie takie cos, co zreszta jest w manualu smarty :

  1. <?php
  2.  
  3. // load Smarty library
  4. require('/Apache/htdocs/PrackaMgr/smarty/libs/Smarty.class.php');
  5.  
  6. // The setup.php file is a good place to load
  7. // required application library files, and you
  8. // can do that right here. An example:
  9. // require('guestbook/guestbook.lib.php');
  10.  
  11. class Smarty_Setup extends Smarty {
  12.  
  13. function __construct() {
  14.  
  15. // Class Constructor.
  16. // These automatically get set with each new instance.
  17.  
  18. $this->Smarty();
  19.  
  20. $smarty->template_dir = '/Apache/htdocs/PrackaMgr/smarty/templates';
  21. $smarty->config_dir = '/Apache/htdocs/PrackaMgr/smarty/config';
  22. $smarty->cache_dir = '/Apache/htdocs/PrackaMgr/smarty/cache';
  23. $smarty->compile_dir = '/Apache/htdocs/PrackaMgr/smarty/templates_c';
  24.  
  25.  
  26. //$this->caching = true;
  27. }
  28.  
  29. }
  30. ?>


A nastepnie przerobilme pierwszy zaprezentowany plik w ten sposob :

  1. <?php
  2. // load Smarty library
  3. //require('/Apache/htdocs/PrackaMgr/smarty/libs/Smarty.class.php');
  4. require('/Apache/htdocs/PrackaMgr/smarty/smarty_setup.php');
  5.  
  6. $smarty = new Smarty_Setup;
  7.  
  8. $smarty->assign('name','fish boy!');
  9. $smarty->assign('surname','bad fck boy!');
  10.  
  11. $smarty->display('index.tpl');
  12. ?>


Czyli mam odwolanie do pliku smarty_setup.php ktory tworzy klase potomka dla smarty i tam przechowuje wszystkie dir.
No i teraz po uruchomieniu pliku dostaje taki komunikat :

Cytat
Warning: Smarty error: unable to read resource: "index.tpl" in C:\Apache\htdocs\PrackaMgr\smarty\libs\Smarty.class.php on line 1093

Mimo ze wszystkie sciezki sa tak samo zdefiniowane, wszystkie potrzebne pliki sa inkludowane to wyskakuje taki blad, nie kumam tego, co moze byc nie tak ?
SirZooro
Kod w konstruktorze Twojej klasy Smarty_Setup nie ustawia składowych w obiekcie klasy, tylko w jakimś tymczasowym obiekcie lokalnym. Zmień $smarty-> na $this->.
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.