Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty][PHP] Problem z katalogami, sciezkami czy nie wiem czym jeszcze.
Forum PHP.pl > Forum > Przedszkole
neosatan
Witam.
W końcu się zabrałem za system szablonów Smarty, ale oczywiście napotkałem problemy z tym związane. Raz, że nie mam pojęcia ale w po prostu klasa smarty mi się nie includuje, gdy mam w include_path (w php.ini) ja ustawiona, ale nawet na to znalazlem juz rozwiazanie. Teraz mam ten problem, że klase mam gdzie indziej, a pliki tez mam gdzie indziej. Probuje różnych dziwnych sposobów, ale niestety raczej srednio mi to idzie, bo ciągle nie wyświetlilem swojego pierwszego szablonu.

plik index.php
  1. ini_set('include_path', ini_get('include_path').'.:/usr/local/Smarty/libs');
  2. require_once("Smarty.class.php");
  3. $smarty = new smarty();
  4. $smaryt->template_dir = '/var/www/game/templates/';
  5. $smarty->assign('hello', 'dzien dobry');
  6. $smarty->display('templates/main.tpl');


i plik main.tpl
  1. <div>
  2. {$hello}
  3. </div>


dostaje oczywiscie bląd:
Warning: Smarty error: unable to read resource: "templates/main.tpl" in /usr/local/Smarty/libs/Smarty.class.php on line 1093

wiem, że po prostu coś ze ścieżkami jest nie tak, ale już naprawde skonczyły mi się pomysły.

Widziałem na innych forach, że ludzie mili podobne problemy, ale na windowsach, a ja niestety używam ubuntu, więc to może być problem tego ustawienia praw za pomoca chmoda, choc w to watpie, poza tym nie chce calemu serwerowi dawac praw 777, bo to wybitnie mi sie nie podoba.

a tak nawiasem mówiać to ktoś wie jak stworzyc sobie w eclipse własne kolorowanie składni, dla pliku danego typu i móc określić nowe elementy questionmark.gif
Zyx
Popatrz sobie na zawartość pola template_dir, a potem na to, co podajesz w metodzie display(). Sklej te dwie ścieżki ze sobą:

/var/www/game/templates/ + templates/main.tpl = /var/www/game/templates/templates/main.tpl

1. Czy to jest ścieżka, której oczekiwałeś?
2. Czy rozumiesz już, na jakiej zasadzie to jest sklejane?

Po drugie zapomniałeś o katalogu na skompilowane szablony, albo o jego ustawieniu (pole compile_dir). Inaczej Smarty nie skompiluje Ci żadnego szablonu smile.gif. Do tego katalogu PHP musi mieć prawa do zapisu.

Nawiasem mówiąc Smarty to nienajciekawszy system szablonów smile.gif
neosatan
glupie przeoczenie...

dlaczego uwazasz, ze smarty to niezbyt ciekawy system szablonow dla php?
Ciagle jestem laikiem w tym wzgledzie, wiec moja wiedze na temat szablonow opieram na tym co wyczytalem i smarty jakos tak najciekawie brzmialy. SimpleTemplate (wspominam o nich, bo sa czesto podawane w ksiazkach o php jako ciekawy system, ale taki wlasnie prosty) podobno tez jest ciekawym systemem, ale podobno nie zawieraja zadnych mechanizmow buforowania i sa troche bardziej ograniczone nizeli smarty. Za to najlepszy konkuretn dla smarty to PHP Savant, z tym, ze ten system jest napisany w php i szablony nie sa kompilowane, co ma to do siebie, ze kod wydaje sie byc mniej bezpieczny.
Zyx
Smarty to właściwie nic innego, jak PHP w klamerkach, a jego największą zaletą jest popularność. Dodajmy do tego, że sam system od dawna się praktycznie nie rozwija, napisany jest pod PHP4, a na większych stronach będziesz mieć w szablonach jeszcze większy syf, niż gdybyś w PHP pisał, bo tam przynajmniej możesz się wspomóc funkcjami i obiektówką.

Lekturka: http://www.zyxist.com/pokaz.php/uzyteczne_systemy_szablonow
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.