Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty] Odzielnie działa w kupie nie chce
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
BugsBunny
Mam taki kod

ustawienia.php
  1. <?php 
  2. define('APP_URL', 'http://MOJE IP/~homepage/');
  3. define('STYL_PATH', 'style/pierwszy/');
  4.  
  5. // baza danych
  6. define('DB_PREFIX', 'homepage_');
  7.  
  8. // Smarty
  9. $smarty->compile_check = true;
  10. $smarty->debugging = true;
  11.  
  12. $smarty->template_dir = STYL_PATH ; 
  13. $smarty->compile_dir = STYL_PATH . "Smartytemp/templates_c";
  14. $smarty->config_dir  = STYL_PATH . "Smartytemp/configs";
  15. $smarty->cache_dir = STYL_PATH . "Smartytemp/cache"; 
  16. ?>


index.php
  1. <?php 
  2. require_once 'klasy/class.db.php';
  3. require_once 'system/Smarty/Smarty.class.php';
  4.  
  5. $smarty = new Smarty;
  6. require_once 'system/ustawienia.php';
  7. $smarty->display('gora.tpl');
  8.  
  9.  
  10. if(isset($_GET['p']))
  11. {
  12. $p = intval($_GET['p']);
  13.  
  14. $db = new db();
  15.  
  16. $db->fetcharray("SELECT * FROM `".DB_PREFIX."strony` WHERE `kod`='".$p."' ");
  17. if($db->rekordy == TRUE)
  18. {
  19. if(file_exists($db->rekordy[0]['plik'].'.php'))
  20. {
  21.  
  22. include $db->rekordy[0]['plik'].'.php';
  23.  }
  24. }
  25.  } 
  26.  else
  27.  {
  28.  include 'news.php';
  29.  }  
  30. $smarty->display('dol.tpl');
  31.  
  32. ?>


a błędy takie

Warning: Smarty error: unable to read resource: "news.tpl" in c:\usr\krasnal\www\homepage\system\Smarty\Smarty.class.php on line 1095


Warning: Smarty error: unable to read resource: "news.tpl" in c:\usr\krasnal\www\homepage\system\Smarty\Smarty.class.php on line 1095

Jak w pierwszy display wpiszę dol.tpl albo news.tpl to się normalnie otwiera.
starach
Z informacjami które podałeś to wydaje mi się że zwyczajnie ścieżka jest niepoprawna. Tak w ogóle to chyba lepszym pomysłem jest podawanie wszystkich ścieżek bezwzględnie powiedzmy od stałej MAIN_DIR definiowanej w pliku konfiguracyjny lub innym będącym w katalogu głównym twojej strony
  1. <?php
  2. define('MAIN_DIR', dirname(__FILE__));
  3. ?>
BugsBunny
No ale osobno wszystko działa.
Wydaje mi się, że Smarty nie ogarnia że na jednej stronie jest 3x funkcja display
starach
No zależy w jaki sposób to testujesz oddzielnie.
Co do ilości wyświetleń to nie powinno mieć to znaczenia.
Można to przetestować, robiąc pętlę i wyświetlić 40 razy to samo.
Hmm możliwe jest też, że Smarty nie może odczytać news.tpl bo ten plik jest już używany na przykład przez inny proces.
snipe
Powinieneś dawać tylko jeden raz display() a np. plik gora.tpl includowac juz w samym szablonie smarty smile.gif
BugsBunny
No dobra zrobiłem w jednym i użylem funkcji {include_php file="news.php"} tylko że znowu to samo bo ten plik też wyświetla inny kawałek w smarty
snipe
powiesz mi po co includujesz plik php w szablonie smarty?? to się mija z celem tongue.gif w końcu chcesz oddzielić logikę aplikacji od warstwy prezentacji, a w ten sposób to Ci za bardzo nie wyjdzie tongue.gif
BugsBunny
PROBLEM ROZWIĄZANY

wystarczyło z ustawnia.php wykasować dwie linijki:

$smarty->compile_check = true;
$smarty->debugging = false;

rolleyes.gif

co do jednokrotnego używania display na w jednym pliku to używam go 3x Rkingsmiley.png i działą
Jabol
lepiej zrób jeden duży tpl który sam sobie includuje inne. Możesz zresztą nawet robić dynamiczne include poprzez wartość zmiennej.
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.