Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> [smarty] - wiadomosci wstępne
itsme
post
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 questionmark.gifquestionmark.gifquestionmark.gif
* Architektura wtyczkowa questionmark.gifquestionmark.gifquestionmark.gif
* 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
  1. <?php
  2. require('Smarty.class.php');
  3. $smarty = new Smarty;
  4. ?>


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ą
  1. <?php
  2. require('/usr/local/lib/php/Smarty/Smarty.class.php');
  3. $smarty = new Smarty;
  4. ?>


Przykład 2-4. Dodać kaalog biblioteki do php_include path
  1. <?php
  2. // Edit your php.ini file, add the Smarty library
  3. // directory to the include_path and restart web server.
  4. // Then the following should work:
  5.  
  6. require('Smarty.class.php');
  7. $smarty = new Smarty;
  8. ?>



Przykład 2-5. Ustawić stałą SMARTY_DIR
  1. <?php
  2. define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
  3. require(SMARTY_DIR.'Smarty.class.php');
  4. $smarty = new Smarty;
  5. ?>


jestem leniwy i poszukalem na forum ciekawego przykladu i dzieki uprzejmosci Pana search.php oraz wiedzi Seth`a odnalazlem cos
Przykladowy wzorzec test.tpt:

  1. <head>
  2. <title>{$title}</title>
  3. </head>
  4.  
  5. <body>
  6. {$text}
  7. </body>
  8. </html>


Kod obsługujący ten wzorzec:
  1. <?php 
  2. define( 'SMARTY_DIR', &#092;"<sciezka bez wzgledna do plikow smarty>\" );
  3. require( SMARTY_DIR.'Smarty.class.php' );
  4.  
  5. $smarty = new Smarty;
  6.  
  7. //tutaj podajemy sciezki do poszczegolnych katalogow (podalem przykladowe sdciezki)
  8. // $_home_path - bezwzgledna sciezka do naszej strony
  9. // mozna to zapisac inaczej (to tylko przyklad :) )
  10. $smarty->template_dir = $_home_path.'templates/'; 
  11. $smarty->compile_dir = $_home_path.'templates/templates_c/';
  12. $smarty->config_dir  = $_home_path.'templates/configs/';
  13. $smarty->cache_dir = $_home_path.'templates/cache/';
  14.  
  15. $smarty->assign( 'title', 'Test strony');
  16. $smarty->assign( 'text', 'To jest text na naszej stronie');
  17. $smarty->display( 'test.tpt' );
  18. // plik test.tpt musi znajdowac sie w katalogu templates.
  19. ?>



pozdrawiam
Go to the top of the page
+Quote Post
spenalzo
post
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 :-).


--------------------

Go to the top of the page
+Quote Post
shw
post
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...]
Go to the top of the page
+Quote Post
spenalzo
post
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]


--------------------

Go to the top of the page
+Quote Post
DeyV
post
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..."
Go to the top of the page
+Quote Post
FiDO
post
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 tongue.gif
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.
Go to the top of the page
+Quote Post
DeyV
post
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 winksmiley.jpg


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
FiDO
post
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? smile.gif

A link do topica masz 2 pietra wyzej.
Go to the top of the page
+Quote Post
DeyV
post
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..."
Go to the top of the page
+Quote Post
FiDO
post
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 smile.gif
Go to the top of the page
+Quote Post
shw
post
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.)
Go to the top of the page
+Quote Post
FiDO
post
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...
Go to the top of the page
+Quote Post
kurtz
post
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:
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]
Najczesciej problem dotyczy wylacznie $smarty->compile_dir. Sprawdz to ;)

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 ..
Go to the top of the page
+Quote Post
FiDO
post
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 winksmiley.jpg
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.
Go to the top of the page
+Quote Post
scanner
post
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?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
FiDO
post
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 sad.gif ), lacznie z poprawionym gotowym kodem. Byc moze i na to ktos wpadl, nie wierze ze bylem pierwszy winksmiley.jpg
W kazdym razie poszukam i jak nic nie znajde to dam im znac.
Go to the top of the page
+Quote Post
DeyV
post
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 winksmiley.jpg ) byłby spokój.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
FiDO
post
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 winksmiley.jpg
Ba.. mam juz gotowa smile.gif sprawdzana na kilku wersjach php i smiga, podrzuce za jakies 2 godzinki, bo teraz tylko na chwile wpadlem, zaraz wracam na kolacje i potem przyjde to wrzuce smile.gif
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.
Go to the top of the page
+Quote Post
FiDO
post
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 winksmiley.jpg
Go to the top of the page
+Quote Post
mhs
post
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
Go to the top of the page
+Quote Post
halfik
post
Post #21





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

Ostrzeżenie: (10%)
X----


ale jak SMARTY ma poprawnie dzialac z 5 skoro tam zupelnie zmielilo sie OOP, a przeciez SMARTY to klasy?

a tak wogole, to mysle ze chlopaki od SMARTY wszystko poprawia, zeby dzialalo pod 5 i bedzie ok, a jak nie, to w razie czego mozna samemu winksmiley.jpg
Go to the top of the page
+Quote Post
Cudi
post
Post #22


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Cytat
ale jak SMARTY ma poprawnie dzialac z 5 skoro tam zupelnie zmielilo sie OOP, a przeciez SMARTY to klasy?

a tak wogole, to mysle ze chlopaki od SMARTY wszystko poprawia, zeby dzialalo pod 5 i bedzie ok, a jak nie, to w razie czego mozna samemu winksmiley.jpg

Do OOP dużo rzeczy dodano, jednak te które są potrzebne do działania klasą z php 4 pozostawiono. Przy prostych klasach zmiany mogą ograniczać sie tylko do zamiany nazwy kontruktora na __contruct(), w Smarty może być z tym troche więcej roboty, bo pórcz OOP jeszcze kilka rzeczy uległo zmienie winksmiley.jpg


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
Bielo
post
Post #23





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 21.09.2003
Skąd: Truskaw

Ostrzeżenie: (0%)
-----


Cytat
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.


16 wyszla wersja 2.6.1 która nie ma problemu z HTTP_*_VARS

Cytat
[16-January-2004] This release is focused on minor fixes and minor new features. $global_assign has been removed, assign globals explicitly if you need them. $SCRIPT_NAME is still assigned for backward compatability. You can make your debug console persist by using SMARTY_DEBUG=1 or SMARTY_DEBUG=0 in the URL. Superglobals $_* are now used by default instead of $HTTP_*_VARS.  


--------------------
Go to the top of the page
+Quote Post
enceladus
post
Post #24





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 19.11.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat
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?

Możesz bez problemu - smarty jest na LGPL-u a nie jak ktoś napisał na GPL-u i nic nie trzeba omijać smile.gif
http://smarty.incutio.com/?page=SmartyFreq...estions#other-1


--------------------
Enceladus
Warsztat: bez warsztatu
Aktua
Go to the top of the page
+Quote Post
DreeD
post
Post #25





Grupa: Przyjaciele php.pl
Postów: 120
Pomógł: 0
Dołączył: 29.11.2003
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


jakby ktos nie wiedzial to ja jestem ciemnym czlowiekiem tongue.gif i pomimo bardzo rozbudowanej instrukcji podanej przez It's_me, nadal nie rozumiem o c w tym chodzi.. (zbyt oficjalny (jak dla mnie)jezyk) napewno duza czesc uzytkownikow tego forum (w tym mnie) ucieszylo by zamieszczenie lopatologicznego objasnienia ich dzialania (+przyklady).
to tylko taka moja drobna sugestia...
Go to the top of the page
+Quote Post
Cudi
post
Post #26


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Obawiam sie że już bardziej łopatologicznie sie nie da... Zamiast próbować rozumieć znaczenie słow, powklejaj te kody w pliki, poodpalaj, pozmieniaj kilka linijek, próbuj w ten sposób zajarzyć o co w tym chodzi.


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
NuLL
post
Post #27





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Znalazłem przed chwlką na Sieci...Godzina póżna więc brak testów

http://www.paullockaby.com/projects/smarty-light/

SMARTY wersja odchudzona -z tego co sie orientuje niektorzy poszukują tak więc wrzucam link. Sam nie korzystałem jeszcze ale napewno probuje.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Diwi
post
Post #28





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

Ostrzeżenie: (0%)
-----


A ja zarzuce troche kodu może to komuś się kiedyś przyda. Miałem problem z wyświetlaniem newsów, chodziło o tablice którą robiłem. Naszczęście pomógł mi @Hwao. Tutaj zarzuce troche kodu jak wyświetlić dużą ilosć rekordów wyciąganych z bazy danych MySQL przy użyciu Smarty.

  1. <?php
  2.  $result = mysql_query(&#092;"SELECT * FROM `news` ORDER BY `id` DESC\");
  3.  
  4. while ($row = $this->db->pobierz_rekordy($result)) {
  5.  
  6. $news[$row['id']]['tytul'] = $row['tytul'];
  7. $news[$row['id']]['tresc'] = $row['tresc'];
  8. $news[$row['id']]['data_dodania'] = $row['data_dodania'];
  9. $news[$row['id']]['autor'] = $row['author'];
  10. $news[$row['id']]['email_autora'] = $row['author_email'];
  11. $news[$row['id']]['id'] = $row['id'];
  12.  
  13. } /* while */
  14.  
  15. /* przypisujemy tablice $news do szablonu Smarty */
  16. $tpl->assign_by_ref('news', $news);
  17. $tpl->display('news.tpl');
  18. ?>


news.tpl

Kod
{foreach from=$news item=newsy}
<table width="400">

    
       <tr>
               <td align="left">{$newsy.data_dodania} <b>{$newsy.tytul}</b></td>
            
              
       </tr>
      
       <tr>
               <td align="left" colspan="2">{$newsy.tresc}</td>
       </tr>
      
       <tr>
               <td align="left"><a href="mailto:{$newsy.email_autora}">{$newsy.autor}</a></td>
               <td align="right"><a href="komentarze-news-{$newsy.id}.html">Komentarze</a></td>
       </tr>



</table>
{/foreach}


Ten post edytował Diwi 29.04.2005, 10:34:40
Go to the top of the page
+Quote Post
stogi
post
Post #29





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 17.07.2005

Ostrzeżenie: (0%)
-----


Witam wszystkich i od razu stawiam pytanie (nie wiem czy nie jest troche lamerskie, ale mam tylko 18 lat i dopiero się uczę).

Czy jest jakiś sposób na to by Smarty pracował ze skryptami napisanym w JavaScript?

Do czego mi to potrzebne? Ano chciałem na robionej przeze mnie stronie zrobić tzw. aktywne przyciski. Jednak po umieszczeniu kodu skryptu Java w sekcji HEAD Smarty pokazuje mi błąd kompilacji.

Czy ktoś próbował już tego i czy wogóle jest to możliwe?

Pozdrawiam,

Stogi.
Go to the top of the page
+Quote Post
crash
post
Post #30





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Umieść kod JS między tagami: {literal}...{/literal}


--------------------
Go to the top of the page
+Quote Post
bela
post
Post #31


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


Aktywne tzn, że zmieniają się po najechaniu?snitch.gif Lepiej CSS-a użyć


--------------------
Go to the top of the page
+Quote Post
eS...
post
Post #32





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


Cytat(Diwi @ 2005-04-29 11:34:02)
  1. <?php              
  2.                 while ($row = $this->db->pobierz_rekordy($result)) {
  3.                 $news[$row['id']]['tytul'] = $row['tytul'];
  4.                 $news[$row['id']]['tresc'] = $row['tresc'];
  5.                 $news[$row['id']]['data_dodania'] = $row['data_dodania'];
  6.                 $news[$row['id']]['autor'] = $row['author'];
  7.                 $news[$row['id']]['email_autora'] = $row['author_email'];
  8.                 $news[$row['id']]['id'] = $row['id'];
  9.                 } /* while */    
  10. ?>

a nei szybciej
  1. <?php
  2.  
  3. $news=array();
  4. while ($row = $this->db->pobierz_rekordy($result)) {
  5.  
  6.                               $news[]=$row  ;
  7.                         } 
  8.         
  9. ?>

a foreach zostaje taki sam! myśle że szybciej smile.gif


--------------------
Go to the top of the page
+Quote Post
son
post
Post #33





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 31.01.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,
mam pytanie odnośnie polskich czcionek. Co zrobić aby były przekazywane one w normalnej postaci, a nie jako coś takiego: ż #281; ?


--------------------
Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki
Go to the top of the page
+Quote Post
mike
post
Post #34





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(son @ 2006-02-23 15:50:01)
Witam,
mam pytanie odnośnie polskich czcionek. Co zrobić aby były przekazywane one w normalnej postaci, a nie jako coś takiego: ż #281; ?

Gdzie i skąd przekazywane?
Jak dostarczasz do templateu zmienne za pomocą assign() to wszystko powinno być OK.
Go to the top of the page
+Quote Post
son
post
Post #35





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 31.01.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Masz rację. Kiedy normalnie dołączam dane do temlate czcionki są OK. Pomyliłem się dlatego, że dane wyciągnąłem z MySql i tam były tak 'rozkodowane'. Ale to nie jest ważne:p
Mój problem polega na tym, że gdy próbuję sformatować jakiś tekst za pomocą {$tekst|capitalize} zakładając, że zmienna $test="aącaźgvćbłnógaaemłuee" dostaję wynik: AąCaźGvćBłNóGaaemłUee Nie trudno zauważyć, że zamiast pierwszej litery smarty zamienia na wielkie pierwszą oraz wszystkie po polskich znakach.

___
Edit:
Hmm... to może ktoś mi powie jak uciec od polskich znaków? Może być w php smile.gif

___
Edit2:
Znalazłem tą funkcję o którą mi chodziło. Dla zainteresowanych: w php: urldecode oraz urlencode, natomias w smarty: {$articleTitle|escape:"url"}
Funkcje te co prawa nie likwidują polskich zaków, lecz zamieniają je tak aby mogły być używane w url'ach smile.gif

Ten post edytował son 26.02.2006, 12:00:06


--------------------
Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki
Go to the top of the page
+Quote Post
moron
post
Post #36





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 24.08.2005

Ostrzeżenie: (0%)
-----


Cytat(eS... @ 2005-09-19 01:08:49)
Cytat(Diwi @ 2005-04-29 11:34:02)
  1. <?php              
  2.                 while ($row = $this->db->pobierz_rekordy($result)) {
  3.                 $news[$row['id']]['tytul'] = $row['tytul'];
  4.                 $news[$row['id']]['tresc'] = $row['tresc'];
  5.                 $news[$row['id']]['data_dodania'] = $row['data_dodania'];
  6.                 $news[$row['id']]['autor'] = $row['author'];
  7.                 $news[$row['id']]['email_autora'] = $row['author_email'];
  8.                 $news[$row['id']]['id'] = $row['id'];
  9.                 } /* while */    
  10. ?>

a nei szybciej
  1. <?php
  2.  
  3. $news=array();
  4. while ($row = $this->db->pobierz_rekordy($result)) {
  5.  
  6.                               $news[]=$row  ;
  7.                         } 
  8.         
  9. ?>

a foreach zostaje taki sam! myśle że szybciej smile.gif

ehh...
jak wstawiam:
  1. <?php
  2. while ($wiersz = $this->db->mysql_fetch_array($wynik)) {
  3.  
  4.                               $user[]=$wiersz  ;
  5.                         } 
  6. ?>

to wyskakuje mi blad:
Kod
Fatal error: Call to a member function on a non-object

a
  1. <?php
  2. while ($wiersz = mysql_fetch_array($wynik)) {
  3.  
  4.                               $user[]=$wiersz  ;
  5.                         } 
  6. ?>
nie przekazuje danych wogole
es jak to zrobic zeby mozna bylo potem wywaloac dane po nazwach pol w bazie
tzn {$user.id} {$user.imie} itd
trzeba wszystko pisac tak jak napisal divi?

edit:
znalazlem jeszcze to:
  1. <?php
  2.  $sql = 'select contact_id, name, nick from contacts order by contact';
  3. $smarty->assign("contacts", $db->getAssoc($sql));
  4. ?>

ale tez mi nie dziala... sad.gif

Ten post edytował moron 20.03.2006, 22:53:23


--------------------
i'm moron ;(
Go to the top of the page
+Quote Post
Coyote
post
Post #37





Grupa: Zarejestrowani
Postów: 151
Pomógł: 0
Dołączył: 20.02.2005
Skąd: Poznań

Ostrzeżenie: (30%)
XX---


$this->db - to sie odnosi do jakiejs klasy przez ktora kolega ma obslugiwana baze danych wiec dlatego ci nie dziala ;P


--------------------
Go to the top of the page
+Quote Post
Flaku
post
Post #38





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 2.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Zrobiłem tak jak podane było w pierwszym poście i pojawia się błąd:


Kod
Fatal error: Smarty error: unable to write to $compile_dir '/public_html/templates/templates_c'. Be sure $compile_dir is writable by the web server user. in /public_html/smarty/Smarty.class.php on line 1092


Ktoś wie dlaczego?
Go to the top of the page
+Quote Post
djerk
post
Post #39





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.07.2008
Skąd: 34N, 72E

Ostrzeżenie: (0%)
-----


Cytat(Flaku @ 15.08.2008, 23:27:37 ) *
Zrobiłem tak jak podane było w pierwszym poście i pojawia się błąd:


Kod
Fatal error: Smarty error: unable to write to $compile_dir '/public_html/templates/templates_c'. Be sure $compile_dir is writable by the web server user. in /public_html/smarty/Smarty.class.php on line 1092


Ktoś wie dlaczego?


Pewnie masz źle ustawione prawa dostępu do katalogu - zmień więc te CHMODy i powinno śmigać.
Go to the top of the page
+Quote Post
Flaku
post
Post #40





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 2.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Faktycznie wcześniej dawałem 7700 bo gdzieś wyczytałem że bezpieczniej... dałem na 777 i gra gitara.
Go to the top of the page
+Quote Post
maly_pirat
post
Post #41





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


Cześć.

Dział zawiera zaledwie parę tematów nt. Smartów i stąd moje pytanie; Czy warto używać Smartów w tej chwili, w tych czasach? Czy teraz tylko wszystko opiera się na frameworkach? Jest jakaś porządna alternatywna dla systemu szablonów takich jak Smarty?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #42





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To zależy kogo zapytasz smile.gif
Ja nie używam i nie zamierzam, ale są tacy, którzy bez smartów nie dotkną projektu. We wielu frameworkach też da się w szablonach używać smarty, ale trzeba pewnie coś więcej zainstalować.

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #43





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (0%)
-----


Cysiaczek a czy mógłbyś napisać jakich inny rozwiązań używasz jeśli nie smarty? Pytam bo ja właśnie stawiam pierwsze kroki w tworzeniu stron w oparciu o szablony i pluginy. Do tej pory w index.php dołączałem jakieś mniejsze skrypty i wyświetlałem zawartość zmiennych. Ale teraz widzę, że jednak rozdzielenie php od html dużo by mi uprościło. Założyłem już dwa tematy:
http://forum.php.pl/index.php?showtopic=143385&hl=
http://forum.php.pl/index.php?showtopic=143956&hl=
ale niewiele zbliżyłem się do celu. Mógłbyś mi pomóc? Bardzo Cię o to proszę.

pozdro
Go to the top of the page
+Quote Post
Noone2011
post
Post #44





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 2.05.2011

Ostrzeżenie: (0%)
-----


Ja mam taki problem. Zainstalowałem Smarty, robiąc wszystko jak było napisane w książce oraz po przejrzeniu tego topicu muszę dojść do wniosku że zrobiłem wszystko jak należy. Ale jak próbuje uruchomić demo to wyskakuje mi taki błąd :

  1. /*%%SmartyNocache:171234dbf3af6e07326-45988957%%*//*/%%SmartyNocache:171234dbf3af6e07326-45988957%%*/
  2. Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template ".\templates\header.tpl" on line 3 "{popup_init src=&quot;/javascripts/overlib.js&quot;}" unknown tag "popup_init"' in C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_templatecompilerbase.php:431 Stack trace: #0 C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_templatecompilerbase.php(253): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "po...', 3) #1 C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_templateparser.php(2319): Smarty_Internal_TemplateCompilerBase->compileTag('popup_init', Array) #2 C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_templateparser.php(2812): Smarty_Internal_Templateparser->yy_r35() #3 C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_templateparser.php(2912): Smarty_Internal_Templateparser->yy_reduce(35) #4 C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_smartytemplatecompiler.php(51): Smarty_Intern in C:\xampp\htdocs\Smarty-3.0.7\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 431


Poradził by ktoś coś na to bo już nie mogę.
Go to the top of the page
+Quote Post
gandziorz
post
Post #45





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 20.12.2006

Ostrzeżenie: (0%)
-----


Czy w 2025r ktoś jeszcze używa systemu SMARTy?
Widzę że projekt nie upadł i są na bieżąco nowe wersje.
Go to the top of the page
+Quote Post
Zafira11
post
Post #46





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 3.01.2025

Ostrzeżenie: (0%)
-----


Cytat(gandziorz @ 14.01.2025, 02:24:47 ) *
Czy w 2025r ktoś jeszcze używa systemu SMARTy?
Widzę że projekt nie upadł i są na bieżąco nowe wersje.

mają swoich wiernych fanów, zwłaszcza w mniejszych firmach i projektach To trochę jak stary, dobry znajomy w świecie technologii. Nowe wersje pokazują, że projekt ma się dobrze
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:49