![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Witam. Troszkę już się zapoznałem ze Smarty. Mam jakiś tam prosty skrypcik oparty o Smarty właśnie. Mam inny problem.
Do tej pory pisałem bez uzycia smarty a szablon dzieliłem na 3 główne pliki. head.php, foot.php i plik z główną zawartością. Chciałbym dalej tak robić, lecz opierać wszystko na smarty. Przypuśćmy że mam pliki nagłówka i stopki zrobione już w smarty, i jak je teraz poprawnie dodawać do pliku głównego typu wiadomości, ogłoszenia itp.... Mam nadzieję, że rozumiecie o co mi chodzi. nie chcę w każdym pliku zaczynać od deklaracji html.... tylko podczepiać już gotowe pliki, w których już są wykonywane różne rzeczy,np w zależności od tego czy jest się zalogowanym, słowa kluczowe robione dynamicznie. Czy jeżeli dam dołączenie Kod {include file='header.tpl'} do pliku głównego czyli najpierw include headera.tpl, później zawartość pliku głównego i na koniec include foot.tpl - to kod php odpowiedzialny za te 2 pliki czyli np head.php i foot.php zostanie wykonany?Chciałbym się dowiedzieć, jak to zrobić najlepiej, żeby później nie robić tego źle. Z góry dzięki za odp. Dodam, że pliki główne są w katalogu /templates, a pliki nagłówka i stopki w katalogu: /templates/includes. Pliki php są w kat. głównym, a pliki nagłówka i stopki w katalogu/includes Czy taki zapis jest "dobry": header.php
header.tpl index.php
index.tpl W takim układzie header i footer się 2x wykonuje:/ Ten post edytował robos85 6.09.2008, 12:20:30 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nic dziwnego - wywołujesz je dwa razy.
Jak dwa razy wywołasz w php include(plik) to również jesteś zdziwiony, że masz to na ekranie dwa razy? Na Twoim miejscu zrobiłabym to tak:
A w header i footer nie wywoływała smarty->display. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
yhm, dzięki za wskazówkę:)
A co do mojego szablonu - takie tworzenie w smarty całego szkieletu jest ok? Czy można top jakoś lepiej zrobić? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat A co do mojego szablonu - takie tworzenie w smarty całego szkieletu jest ok? Szkieletu czego? Wyglądu?Jeśli się już zdecydowałeś na smarty (które jest wolne, ale ma zabójczo dobrą pomoc i jest po prostu rozpowszechnione), to tak - w samym wyglądzie strony (plikach .tpl) nie zaleca się już używania php. Po to masz na przykład instrukcje warunkowe, pętle i inne przydatne rzeczy, żeby wszystko było możliwe do osiągnięcia za pomocą smarty i języków "po stronie przeglądarki" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
yhm, a co to znaczy wolne. Czy są jakieś lepsze systemy oddzielania htmla od php?
Jeżeli tak to jakie:). Ale czytałem o smarty i wszyscy zachwalają. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Smarty jest mocno rozbudowane, obiektowe i tak dalej. To znaczy proste do modyfikacji, dodawania własnych funkcji i modyfikatorów, bardzo wygodne w użytkowaniu, ale szybkością nie zachwyca.
Nie znaczy to oczywiście, że każda strona będzie się ładować latami, ale jednak na wydajności trochę straci. Najszybsze są szablony macierzyste - czyli zwykłe php, z tym że w plikach z htmlem bardzo okrojone. Są smarty, open power template, można wszystko robić za pomocą xml i xslt i wielu, wielu innych. Uważam jednak, że tak czy siak trzeba choćby podstawy smartów znać - bardzo często są wykorzystywane, głównie w projektach nad którymi pracuje kilka osób. Uważasz, że smarty są ok - nie ma sprawy, rób w smarty. Jednak warto przy tym wszystkim zdawać sobie sprawę, że będzie to sporo wolniejsze od czystego phpa. I tyle (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Yhm, tylko skoro jest wolna, to czemu tak dużo programistów z niej korzysta?
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
przesadzają z tą powolnością. Smarty kompiluje swoje szablony do czystego kodu php wiec ostatecznie to i tak kod php sie wykonuje a nie szablon smartiego.
Oczywiscie w fazie produkcji nalezy ustawic by zawsze kompilowal szablon, ale gdy sie juz aplikacje wystawi na serwer jako ostateczną wersje to nalezy ustawic by kompilowal tylko raz a kazde nastepne odwolanie bylo juz do kodu php. Ze smarty jak z obiektowką: niby spowalnia ale i tak wszyscy uzywaja. Owszem, każde dodanie nowych rzeczy, bajerow spowalnia wykonywanie skryptu, ale znacznie przyspiesza jego tworzenie i jego czytelnośc. Coś za coś. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
przesadzają z tą powolnością. Smarty kompiluje swoje szablony do czystego kodu php wiec ostatecznie to i tak kod php sie wykonuje a nie szablon smartiego. Oczywiscie w fazie produkcji nalezy ustawic by zawsze kompilowal szablon, ale gdy sie juz aplikacje wystawi na serwer jako ostateczną wersje to nalezy ustawic by kompilowal tylko raz a kazde nastepne odwolanie bylo juz do kodu php. A jak jest z moim przykładem? Poprawnie? Bo nie wiem gdzie się takie coś ustawia |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat A jak jest z moim przykładem? Poprawnie? Pytasz oco? O szablon? No ten na poczatku to byl zly ale nie wiem jak masz teraz bo Shili pare poprawek ci zarzuciła.Cytat Bo nie wiem gdzie się takie coś ustawia To na serwerze by nie kompilowal?
Doczytaj sobie co tam wstawic by dzialo sie co chcesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat przesadzają z tą powolnością. Smarty jest jednym z wolniejszych jeśli chodzi o szablony php. Nigdzie nie twierdzę, że jest zły, trzeba to jednak brać czasem pod uwagę. A już szczególnie trzeba o tym wiedzieć, jeśli się chce używać moim zdaniem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Choćby dlatego, że przy wizytówce która ma wszystkiego 5 podstron nie opłaca się dodanie smartów - są lepsze rozwiązania. I w tym przypadku nawet na czytelności niewiele się traci. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 6.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj sobie tą dokumentację: http://www.rzseattle.org/docs/smartypl/ . Jest po polsku i dość przystępnie napisana
|
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Smarty jest jednym z wolniejszych jeśli chodzi o szablony php Ale mowisz juz o sytuacji gdy smarty ma juz kod w postaci czystego php? A co tam jest wowczas wolniejsze? Przeciez szablonu juz nie parsuje. Jesli jednak mowisz wlasnie o tym to jakies bencharki masz moze? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 466 Pomógł: 11 Dołączył: 21.09.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Pytasz oco? O szablon? No ten na poczatku to byl zly ale nie wiem jak masz teraz bo Shili pare poprawek ci zarzuciła. To na serwerze by nie kompilowal?
Doczytaj sobie co tam wstawic by dzialo sie co chcesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) W tym moim pierwszym kodzie co podałem wprowadziłem tylko zmiany, które podała Shili i teraz działa, tylko pytanie czy to co zrobiłem jest optymalne w miarę. Co do $compile_check doczytałem, że jest domyślnie na TRUE i taką wartość należy ustawić podczas projektowania, gdy szablon nie jest skończony. Na FALSE należy nastawić gdy szablon jest skończony i gotowy do użytku publicznego. A co do $force_compile to jest domyślnie na FALSE. Jeżeli jest TRUE wymusza rekompilację szablonu i powinno być na true podczas projektowania - podobnie jak funkcja poprzednia. Dobrze rozumuję? Jeżeli tak muszę pamiętać, aby $compile_check ustawić na false po opublikowaniu gotowej strony:) btw. im więcej czytam o smarty, tym bardziej czytelne, łatwiejsze i "użyteczne" się staje:) Ten post edytował robos85 6.09.2008, 20:06:53 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 04:09 |