![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
mam glowny katalog mojego skryptu ktory nazywa sie main_script
w tym katalogu mam np. dwa foldery: templates oraz files i jeden plik index.php jezeli chce zrobic szablon do index.php to tworze w folderze templates plik index.tpl ale teraz mam problem, bo jak chce : - w folderze files utworzyc plik files.php - zrobie w folderze templates folder files i w nim plik files.tpl to to nie dziala czyli jezeli moj plik php znajduje sie w folderze to ten plik tpl tez sie znajduje w takim samym folderze ktory ma taka sama nazwe.. rozumiecie? wiec jak to zrobic? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo rozumiem problem, a wręcz nie widzę problemu...
załóżmy, że masz takie pliki: Kod - templates/index.tpl - templates/files/files.tpl - templates/whatever_1/whatever_2/whatever_3/whatever.tpl i załóżmy jeszcze, że:
to aby kolejno zainkludować te pliki robimy: Kod {include file="index.tpl"} {include file="files/files.tpl"} {include file="whatever_1/whatever_2/whatever_3/whatever.tpl"} tak samo zreszta przy kiedy używasz metod Smarty Display() czy Fetch(), podajesz sciezke do pliku z szablonem wzledem twojego $Smarty->templates_dir. no chyba że nie w tym twój problem... pozdr. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
Nie nie chodzi mi o includowanie w pliku tpl
mam glowny katalog main_script a w tym katalogu sa takie foldery: - files ( w tym folderze plik files.php ) - templates ( w tym folderze mam jeszcze jeden katalog files a wnim plik files.tpl ) plik files.php wyglada tak:
i nie czyta mi tego pliku files.tpl z tego katalogu templates/files wyswietla blad: Warning: Smarty error: unable to read resource: "files/files.tpl" in c:\usr\apache\httpd\html\main_script\smarty\Smarty.class.php on line 1095 o to mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 416 Pomógł: 0 Dołączył: 8.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Pytanie czy katalog templates masz ustawione jako swoj $template_dir. Jesli tak to wg mnie powinno dzialac tak jak robisz.
Siemakuba nie napisal ci o includowaniu w pliku tpl tylko w ogole. Pisze o tym w ostatnim akapicie swojego wpisu. Poczytaj jakie sa inne metody na wczytywaniu szablonu, moze rozwiaze to twoj problem: http://smarty.php.net/manual/en/template.resources.php |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
tak jak pisze ikikolak, powinno działać.
ale chyba wiem czemu nie działa. prawdopodobnie swoja templates_dir masz ustawiona mniej wiecej tak:
kiedy probojesz uzyc szablonu za pomocą
jak w rzeczywistosci bedzie wygladac sciezka do pliku? Kod C:\usr\apache\httpd\html\main_script\templates\files/files.tpl zwroc teraz szczegolna uwage na ten fragment: templates\files/files.tpl takiej sciezki chyba php nie da rady odczytac. hint ode mnie: w windowsie mozesz usywac zarowno \ jak i / do okreslania sciezek do pliku. kiedy polaczysz to z wiedza, ze w unixie musisz uzywac / - robi sie dosc uniwersalnie, rajt? podsumowujac:
powinno dac rade pozdr. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
nie dziala... ale juz chyba wiem dlaczego...
nazwe glownego katalogu skryptu pobieram przez:
czego wynikiem jest: c:\usr\apache\httpd\html\main_script/ jest to sciezka podana z dysku i ukosniki sa odwrtotnie polozone na na localhoscie ta sciezka pokazuje z takimi : \ a na zwyklym serwie (chyba!!!!) z takimi : / jak to mozna zrobic? moze da sie zastapic dirname czyms innym (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat moze da sie zastapic dirname czyms innym ?? ja zdecydowanie i upracie używam:
nie mialem jeszcze problemow ze sciezkami. A ze nie ustawia sie autmagicznie jak w przypadku dirname? no przeciez sam uzywasz tego jako stalej, stala = niezmienna. nawet przy zalozeniu ze projektujesz na innej maszynie / w innym srodowisku a wersja produkcyjna stoi finalnie gdzie indziej, to jest ustawienie *tylko jednej* stalej w jakims configu. pozdr. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
nawet jak dalem:
ten kod $smarty -> templates_dir...... to nie dziala ciagle ten sam blad.. |
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
oko, moze cos innego gdzies miesza. daj więcej kodu, ten gdzie masz definicje stalych, tam gdzie masz definicje Smarty->templates_dir i tam gdzie wywolujesz Smarty->display();
P.S. przepraszam, ale sprawdz czy ten plik faktycznie istnieje, i czy przypadkiem ma jakas tresc. Smarty zdaje sie powie ze nie ma pliku jezeli ten jest zerowej wielkosci. pozdr. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
plik istnieje, i dane tez w nim mam...
a oto troche kodu: plik c.php (jest w glownym katalogu skryptu):
plik conf.php ( jest w glownym katalogu skryptu): mam w nim dane do bazy danych i polaczenie z baza... przykladowy plik files/files.php
pozdrawiam. |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Smarty Manual:
Cytat $template_dir This is the name of the default template directory. If you do not supply a resource type when including files, they will be found here. By default this is "./templates", meaning that it will look for the templates directory in the same directory as the executing php script. wyjaśniam nam, dlaczego zadziała ci wywolanie z pliku index.php a dlaczego nie zadziała z files/files.php. zmień tak:
P.S. sorki, troche to mea culpa, ze tak sie nam watek rozciagnal... wczesniej widze przez omylke uzywalem caly czas $smarty->templates_dir. Byc moze gdyby nie ta omylka rozwiazanie znalazlo by sie wczesniej. pozdr. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
OK. Dzieki za pomoc. Ale teraz wyskoczyl inny blad:
Cytat Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory. in c:\usr\apache\httpd\html\main_script\smarty\Smarty.class.php on line 1095 A przeciez taki folder mam stworzony w glownym katalogu skryptu :/ EDIT (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok dodalem jeszcze $smarty -> compile_dir = SMARTY_TEMPLATES_C; i dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) : tylko teraz mam problem znowu bo jak skrypt wgram na serwer to sciezka nie bedzie taka: c:\usr\apache\httpd\html\main_script\ tak wiec jak zrobic aby podac glowny katalog skryptu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował Legro 11.05.2006, 19:56:04 |
|
|
![]()
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
damn kurcze blade,
no przeca zmienić tu na odpowiednią ścieżkę, np. /home/legro/www/
;) w ostateczności, jak jesteś maxymalnym leniuchem albo często przerzucasz pliki między lokalnym serwerem a serwerem gdzieś inedziej, zrób tak: (zakładając, że w domu masz WIN a zdalnie unix)
pozdr. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:11 |