![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin ![]() |
jestem po pierwszych przejsciach ze smarty . Postanowiłem sie podzielić swoim skromnym doświadczeniem.
Moje dane wyjściowe. 396 MB RAM, PIII, FoxServ 3.0, WinXP czy byly problemy z instalacja - NIE; jedyna czynnoscia ktora kazdy z Was musi wykonac to zassac smarty rozpakowac w katalogu glownym i to wszsytko jest i bedzie dzialac. Do czego sluzy smarty? Czesto macie problemy z czytaniem wlsnych skrytow wszsytko jest tam razem kod php HTML, czesc z Was rozdziela to za pomoca szablonow zas smarty idzie dalej w smarty mozna wykorzystac funkcje ktore sa tam wbudowane. Czy ja cos robilem wczesniej w smarty i na szablonach - NIE. skoro juz sciagneliscie smarty do siebie i macie rozpakowane czas napisanie pierwszego DZIAŁAJACEGO skryptu w tym celu wspomoge sie manualem ktory przetlumaczyl rzseattle na poczatek co to jest smarty Cytat 2.1 Czym jest SMARTY Smarty jest systemem szablonowym dla php. Służy ułatwieniu oddzielenia logiki aplikacji od jej wyglądu . Najlepiej opisuje go sytuacja kiedy programista aplikacji i projektant szablonów mają do spełnienia różne role (bo przecież w większości przypadków to nie jest ta sama osoba). Na przykład, powiedzmy, że projektujesz stronę web która wyświetla artykuł z gazety. Nagłówek, stopka autor i treść są elementami zawartymi w artykule, przyporządkowany im numer mówi nam w jaki sposób poszczególne elementy będą prezentowane. Elementy zostają przyporządkowane przez aplikacje do Smarty, wtedy projektant szablonów edytuje szablony używając kombinacji znaczników HTML i znaczników szablonu do formatowania prezentacji tych elementów (tabelki HTML, kolory tła, wielkość czcionek, arkusze stylów, itd.). Pewnego dnia programista potrzebuje zmienić sposób w jaki dane artykułu są pozyskiwane (zmiana logiki aplikacji). Ta zmiana nie interesuje projektanta szablonu, dane artykułu dalej będą dostarczane do szablonu w ten sam sposób. Podobnie , jeżeli projektant szablonu chce totalnie zmienić wygląd szablonu, nie wymaga to zmiany w logice aplikacji. Dlatego programista może zmieniać logikę aplikacji bez potrzeby restrukturyzacji szablonów, a projektant szablonów może modyfikować szablony bez łamania logiki aplikacji. Teraz kilka słów o tym czego SMARTY nie robi. Smarty nie próbuje całkowicie oddzielić logiki od szablonów. Nie ma problemu z logiką w twoich szablonach pod warunkiem ,że ta logika służy tylko do prezentacji. Krótka rada: trzymaj logikę aplikacji z dala od szablonów i logikę prezentacji z dala od aplikacji. To definitywnie utrzyma twoją witrynę jako w pełni i łatwo edytowalną w przyszłości. Jednym z unikalnych aspektów Smarty jest kompilowanie szablonów. To znaczy, że Smarty czyta plik szablonu i tworzy dla niego skrypt php. Kiedy już jest stworzony, szablony uruchamiane są przez ten skrypt. Dlatego nie ma potrzeby parsowania plików szablonów dla każdego żądania, równocześnie każdy szablon jest w pełni obrabialny dal kompilerów php takich jak Zend Accelerator (http://www.zend.com) albo php Accelerator (http://www.php-accelerator.co.uk/). Niektóre z własności Smarty: * Jest ekstremalnie szybki * Nie parsuje szablonu za każdym razem, tylko raz kompiluje. * Rekompiluje tylko te szablony które się zmieniły. * Język szablonów jest ekstremalnie elastyczny ponieważ możesz tworzyć własne funkcje oraz własne modyfikatory zmiennych * Konfiguralne znaczniki wyrażeń szablonów, możesz używać {}, {{}}, <!—{}--!>, itd. * Konstrukcje if/elseif/else/endif są przekazywane do parsera php, więc wyrażenie {if...} może być proste lub kompleksowe – jak sobie życzysz. * Nieograniczone zagnieżdżanie sekcji, if-ów itd. * Jeśli to możliwe osadzanie kodu php w plikach szablonów, jednak jest to czynność nie polecana * Wbudowane caschowanie * Samowolne źródła szablonów ![]() ![]() ![]() * Architektura wtyczkowa ![]() ![]() ![]() * Architektura pozwalająca wykorzystywać wtyczki teraz czas sprawdzic czy to co macie u siebie dziala Cytat Zainstaluj pliki bibliotek Smarty znajdujące się w katalogu /libs/ dystrybucji. Są to pliki php których NIE POWINENEŚ zmieniać. Są one wydzielone spośród wszystkich aplikacji i zostają zaktualizowane tylko wtedy kiedy zaktualizujesz je na nową wersje Smarty. Przykład 2-1. Pliki bibliotek Smarty Kod Smarty.class.php Smarty_Compiler.class.php Config_File.class.php debug.tpl /plugins/*.php (all of them!) Smarty używa stałej php o nazwie SMARTY_DIR która jest ścieżką systemową katalogu z bibliotekami Smarty. Przeważnie, jeżeli twoja aplikacja potrafi znaleźć plik Smarty.class.php, nie musisz ustawiawiać SMARTY_DIR. Dlatego, jeżeli Smarty.class.php nie znajduje się w twoim iclude_path, albo nie dostarczysz ścieżki absolutnej do tego w twojej aplikacji, wtedy musisz zdefiniować SARTY_DIR ręcznie. SMARTY_DIR musi zawierać ostatni slash. Oto jak tworzyć przykładowy skrypt php ze Smarty: Przykład 2-2. Tworzenie Smarty przykład Smarty
Spróbuj uruchomić powyższy skrypt. Jeśli w rezultacie zostanie wyświetlony błąd mówiący o tym, że nie można znaleźć pliku Smarty.class.php spróbuj zrobić jedną z następujące rzeczy: Przykład 2-3. Wpisać ścieżkę bezwzględna do katalogu z biblioteką
Przykład 2-4. Dodać kaalog biblioteki do php_include path
Przykład 2-5. Ustawić stałą SMARTY_DIR
jestem leniwy i poszukalem na forum ciekawego przykladu i dzieki uprzejmosci Pana search.php oraz wiedzi Seth`a odnalazlem cos Przykladowy wzorzec test.tpt: Kod obsługujący ten wzorzec:
pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Chciałem dopowiedzieć i jednocześnie zapytać się jako początkujący ze smarty: do jakiego konkretnie katalogu trzeba wrzucić rozpakowane pliki ze smarty? Bo jeżeli nie zdefiniuje sobie SMARTY_DIR to pojawia mi się taki błąd:
Kod Fatal error: Failed opening required 'Smarty.class.php' (include_path='.;c:php4pear') in E:FoxServwwwsmartyindex.php on line 3
Numer dwa: Nie wiem czy to u mnie źle czy tutaj, ale dopiero taki kod zadziałał prawidłowo: [php:1:232bdd4e7c]<?php $smarty->template_dir = $_home_path."templates/"; $smarty->compile_dir = $_home_path.'templates_c/'; $smarty->config_dir = $_home_path.'configs/'; $smarty->cache_dir = $_home_path.'cache/'; ?>[/php:1:232bdd4e7c] I numer trzy: czy jeżeli na zdalnum serwerze nie ma smarty to mogę wrzucić to do katalogu "smarty" i z tego katalogu wywołać to tak: [php:1:232bdd4e7c]<?php define("SMARTY_DIR","/sciezka/do/mojej/strony/"); ?>[/php:1:232bdd4e7c] i będzie to działać? Udało się, działa i muszę powiedzieć, że po wykonaniu tego przykładowego pliku już mi się podoba :-). -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: -- Skąd: Wired Ostrzeżenie: (0%) ![]() ![]() |
a ja mam takie pytanko.
robie sobie pewien projekt i szczerze mowiac nie chce mi sie poswiecac czasu na pisanie od podstaw systemu szablonow - nie wiecie czy mozna zgodnie z prawem dolaczyc smarty, oczywiscie wszedzie zaznaczajac, ze jego wlasnie uzylem? [smatry cos sie wali na php5...] |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Odpowiadam na swoje pytanie nr 3:
owszem, można samemu zainstalować smarty na serwerze, ale trzeba podać ścieżkę do katalogu: [php:1:43f43a6e66]<?php define("SMARTY_DIR","/sciezka/do/katalogu/smarty/"); ?>[/php:1:43f43a6e66] -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
1. Można (zapoznaj się polską wersją GPL - pokazuje, że możesz z tym softem robić praktycznie wszystko, o ile nie zaczniesz rozpowszczechniać go jako swój, nie informując zainteresowanych, zę zawiera elemnty pochodzące z...)
2. Na http://smarty.php.net jest informacja na ten temat, wraz z poradą, jak to ominąc. Na tym foruum również pojawił się ten temat kilkakrotnie, chyba nawe dziś lub wczoraj. Jesłi to nie wystarczy - jest jeszcze pakiet przygotowany przezemnie -> http://www.mstudio.nq.pl/php_pl/index.php?...dir=%2Fpoprawki (choć nie wiem, czy to akurat działa na najnowszysm snapsie) -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
DeyV Twoja paczka nie dziala prawidlowo
![]() Sam ja od Ciebie sciagalem kiedys jak podawales linka, ale okazuje sie ze ten patch ma wady. Mam wrazenie, ze nie czytales mojego wywodu bo tam napisalem co nie dziala i dlaczego, jest tez wersja poprawiona. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
czytalem, zrozumialem, tyle, zę linka nie pamietalem. Tak wiec napisałem - że dziś albo wczoraj było, a to co pamiętam - podałem...
Apropo - podaj link do twojej paczki - mozę też ją wrzucę na swój serwer - jak już mam tam takie śmieci ![]() -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
No przeciez w tamtym topicu jest na samym dole link. Jak czytales, ze nie widziales?
![]() A link do topica masz 2 pietra wyzej. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
sorki - nie zauwazylem - czlowiek na starość ślepnie :oops:
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Zdarza sie najlepszym
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: -- Skąd: Wired Ostrzeżenie: (0%) ![]() ![]() |
ok - a temraz - mi wywala taki blad (na php4 ladnie dziala):
Cytat Fatal error: Method name must be a string in C:wwwSmarty-2.5.0demotemplates_c%%-13%%-135052920header.tpl.php on line 6
czyli w demie smatry'ego, ktore powinno dzialac... i coz to moze byc? (sorry, za takie lekko lame questions, ale nie chce mi sie czytac dokumentacji w calosci i analizowac potem bledu, jezeli moze ktos juz sie z tym spotkal i wie o co chodzi.) |
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
To na moim pliku??
Jesli tak to sprawdze u siebie i rano zdam relacje, byc moze cos przegapilem, badz jest tam jakas literowka, wszystkiego przetestowac nie moglem... |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Numer dwa:
Najczesciej problem dotyczy wylacznie $smarty->compile_dir. Sprawdz to ;)
Nie wiem czy to u mnie źle czy tutaj, ale dopiero taki kod zadziałał prawidłowo: [php:1:5adc5ebebf]<?php $smarty->template_dir = $_home_path."templates/"; $smarty->compile_dir = $_home_path.'templates_c/'; $smarty->config_dir = $_home_path.'configs/'; $smarty->cache_dir = $_home_path.'cache/'; ?>[/php:1:5adc5ebebf] U mnie spokojnie rusza wszystko bez zmiany niczego poza w/w katalogiem. Wydaje mi sie ze domyslnie nie istneiej on rowneiz w pakiecie z bibliotekami. Chyba ze cos sie ostatnio zmienilo. Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Hmm, a ja znalazlem kolejna niekompatybilnosc z PHP5
![]() Zauwazylem ze w koncu w PHP5 pozbyli sie globali HTTP_*_VARS, z ktorych Smarty namietnie korzysta. Mam juz przygotowana łatke (spradzana na php 4.1.1, 4.3.3 i snaps z php5), wieczorkiem podrzuce. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Czy ktioś zgłasza te niekompatybilności do smartyTeamu?
-------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Wieczorem poszukam w necie czy ktos juz czasem tego nie zrobil.
Ten poprzedni 'blad' z call_user_func np. byl na kilku stronach opisany (znalazlem dopiero po rozwiazaniu tego ![]() ![]() W kazdym razie poszukam i jak nic nie znajde to dam im znac. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
tak czy inaczej - mógłbyś przygotować gotową, sprawdzoną paczkę. Przynajmniej na jakiś czas (do kolejnej wersji php5
![]() -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Oczywiscie, ze przygotuje
![]() Ba.. mam juz gotowa ![]() ![]() Dobrzeby bylo, zeby to troche potestowac zanim sie rozglosi jako oficjalna poprawke. W sumie nie znam dokladnie klasy Smarty ani Smarty_Compiler, w ktorych mieszalem. Tak tylko je pobieznie przegladnalem, wiec moze jest cos o czym nie wiem. |
|
|
![]()
Post
#19
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
here we are... http://stargate.uz.zgora.pl/~fido/smarty-php5.zip
Jesli ktos jest bardziej zainteresowany to uprasza sie o lookniecie w okolice linijki 550 z pliku Smarty.class.php ![]() |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
ponieważ od jakiegoś tygodnia wykorzystuje Smarty i trochę szukałem informacji na ten temat poniżej podaję linka (swoją drogą zamieszczonego gdzieś na tym forum) do pewnego artykuły - myślę, że nadaje się on do tematu: [smarty] - wiadomosci wstępne (zawiera kilka informacji o samej idei szablonów jak i systemie Smarty)
http://ivpro.net/szablony.htm |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.05.2025 - 16:30 |