Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> system szablonów, funkcje
jarmiar
post 20.12.2009, 18:01:23
Post #1





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


witam

mam problem jak rozwiązać następującą kwestię:

chcę zrobic taki znacznk:

{$nazwa_funkcji: argument}

i zeby po wpisaniu w szablon tego, wywołała się funkcja

nazwa_funkcji(argument);

nie wiem jak to zrobic


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
emtiej
post 20.12.2009, 18:27:06
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Nie napisałeś jaki system szablonów masz na myśli, w smarty takie coś nie jest chyba możliwe...
Go to the top of the page
+Quote Post
jarmiar
post 20.12.2009, 20:42:45
Post #3





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


jest to taki system szablonów

http://wklej.org/hash/119c63e013/

i teraz mi chodzi o coś innego:

miałem na stronie funkcję:

<? panele('prawa'); ?>

i postanowiłem to zamienić na

{$panele.prawa}

w funkcji panele('prawa'); mam include do innego pliku i on też może zawierać includy do innych choć nie musi

problem polega na tym, że ta funkcja tzn {$panele.prawa) wykonuje się pierwsza, na samym początku, a nie w miejscu, w którym została wstawiona

jak temu zaradzić?


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Crozin
post 20.12.2009, 21:11:34
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


I po co niepotrzebnie drążysz niepotrzebnie w taką ułomność, jaką jest zamiana <?, ?> na {, }? Jedynie niepotrzebnie zmniejszasz czytelność, elastyczność, wydajność aplikacji, nie zyskując przy tym kompletnie niczego.
Go to the top of the page
+Quote Post
jarmiar
post 20.12.2009, 21:24:44
Post #5





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


no dobra ale nie takie było pytanie


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Zyx
post 20.12.2009, 21:52:57
Post #6





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Funkcje? W TAKIM systemie szablonów? Zapomnij. Porządne systemy szablonów działają na zupełnie innej zasadzie. Tutaj nawet jak Ci się po wielu trudach i walkach uda osiągnąć taki efekt, możesz powiedzieć "dobranoc" wydajności, prostocie i pewnie też niezawodności. Zainstaluj sobie coś normalnego w stylu OPT czy PHPTAL, bo czegoś takiego, co pokazałeś, to nie ma sensu nawet używać. Rozwiążesz jeden problem z funkcjami, za pięć minut znów się pojawisz z kolejnym pytaniem o następną głupotę.

Crozin -> jakieś argumenty czy też jesteś jednym z tych, którzy zawiedli się na archaicznym Smartym (który faktycznie można o kant rozbić) i teraz dla zasady jadą po wszystkich systemach szablonów nawet bez rzucenia okiem lub wygłaszając brednie typu "Zend_View to nie system szablonów" lub "Porównanie systemu szablonów XXX z frameworkiem YYY"?

Ten post edytował Zyx 20.12.2009, 21:54:04


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Crozin
post 21.12.2009, 10:02:16
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@Zyx: O Smarty nie ma nawet co dyskutować. Nieco świeższe systemy są nieporównywalnie lepsze (z OPT się nawet swego czasu bawiłem i nie powiem - nie jest zły, ale nie miałem okazji go wykorzystać z jakimś normalnym projekcie). Nie napisałem też, żeby pod żadnym pozorem nie korzystać z takich narzędzi - bo jeżeli komuś ułatwiają i przyśpieszają pracę to jak najbardziej powinien z nich korzystać.

Po prostu jak widzę taki "system szablonów" to profilaktycznie wolę autora odwieść od zamiaru wykorzystania go. winksmiley.jpg
Go to the top of the page
+Quote Post
jarmiar
post 21.12.2009, 13:06:22
Post #8





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


no dobra, ale jak byście to zrobili??


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Pilsener
post 21.12.2009, 14:57:13
Post #9





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Normalnie, to co ma się wyświetlać w szablonie dajesz w {} i wszystko. Po co tworzyć kolejny pseudo-język, którego nikt nie będzie umiał wykorzystać nawet jak znajdzie się ktoś na tyle szalony, by tego użyć w swoim projekcie. Wyjścia masz dwa:
1. Używasz znanego systemu tak, aby każdy mógł go bez problemu obsłużyć (np. smarty), gdzie jest support i dokumentacja
2. Używasz swojego systemu, ale PROSTEGO, ja np. używam tylko {zmienna} i jakoś sobie radzę, wydajność też na pewno dzięki temu jest lepsza
Go to the top of the page
+Quote Post
Crozin
post 21.12.2009, 15:48:10
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@Pilsner: i w jaki niby sposob wyswietlasz cos w stylu: jezeli uzytkownik jest zalogowany to wyswietl link do profilu, jezeli nie, to "Witaj gosciu"?

PS. Przepraszam za brak polskich znakow, nie mam chwilowo mozliwosci pisania inaczej.
Go to the top of the page
+Quote Post
jarmiar
post 21.12.2009, 16:31:58
Post #11





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


no dobra tak chcę zrobić, ale jak przypiszę do np {$panele.gora} funkcje panele('gora') to kod wykona się wcześniej bo tam są różne includy

ak to obejść


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Pilsener
post 21.12.2009, 21:56:34
Post #12





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
i w jaki niby sposob wyswietlasz cos w stylu: jezeli uzytkownik jest zalogowany to wyswietl link do profilu, jezeli nie, to "Witaj gosciu"?
- trochę inwencji, dziele kod HTML na sekcje, np. news przyklejony a zwykły to będą dwa różne templaty i tak całość będzie scalona w jeden monstrualny templat całej strony, jedyna różnica jest taka, że stworzenie PA do tego jest bardziej skomplikowane (bo trzeba templat podzielić na kilka, no ale czego się nie robi dla finalnego użytkownika). Projektując system trzeba mieć na uwadze, że chłopcy z Demokratycznej Republiki Konga, którzy będą stawiać na tym powiedzmy dużo wartościowych serwisów muszą to ogarniać bez problemu, czasem jak człowiek widzi skomplikowane templaty gdzie warstwy ifów i pętle idą w dziesiątki to się zastanawia, czy temu to miało służyć? Potem pojawiają się skórki i spece od nich, bo przecież nikt się nie będzie uczył pseudo-języka, spotykałem się nawet z opiniami, że kiedyś kod HTML był w plikach .php i było łatwo, wiadomo co było trzeba zmienić i w jakim pliku etc.

Oczywiście jeśli jest dużo dynamicznego kodu HTML to bez uciekania się do systemów typu SMARTY ani rusz, ale jakiś prosty system artykułów czy dodawania stron? Tak czy inaczej templat trzeba stworzyć i od tego się nie ucieknie.

Tak np. standardowe menu rozwijane jest zbudowane (fragment):
http://img.org.pl/obrazek/cZGlTxX16u3.html

Do tego oczywiście opis każdego elementu i listy zmiennych tak, że nawet kompletny laik to zrozumie a jak dasz pętle + masę warunków w smarty to zaraz zaczną się pytania typu "chciałbym zrobić menu na tabeli, do jakiego specjalisty mam się udać, może być pediatra?"

Ten post edytował Pilsener 21.12.2009, 21:58:55
Go to the top of the page
+Quote Post
jarmiar
post 21.12.2009, 22:01:11
Post #13





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


no dobrze, ale ja w dalszym ciągu nie uzyskałem odpowiedzi na moje pytanie


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
Zyx
post 22.12.2009, 08:25:25
Post #14





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


A ja widzę, że uzyskałeś:

Cytat
Funkcje? W TAKIM systemie szablonów? Zapomnij. Porządne systemy szablonów działają na zupełnie innej zasadzie. Tutaj nawet jak Ci się po wielu trudach i walkach uda osiągnąć taki efekt, możesz powiedzieć "dobranoc" wydajności, prostocie i pewnie też niezawodności. Zainstaluj sobie coś normalnego w stylu OPT czy PHPTAL, bo czegoś takiego, co pokazałeś, to nie ma sensu nawet używać. Rozwiążesz jeden problem z funkcjami, za pięć minut znów się pojawisz z kolejnym pytaniem o następną głupotę.


Pilsener -> dlatego powinno się używać systemów, które mają składnię zoptymalizowaną pod czytelność w kodzie HTML smile.gif. W moich szablonach używam różnych rzeczy, a oprócz tego tworzę je szybko, zaś kod pozostaje czytelny. Kod, jaki pokazałeś, wcale nie musi być czytelniejszy. Zamiast pytania "do czego służy te 100 ifów" masz "Co tu się do @#%#$% wyświetla i gdzie jest ten szablon".

Ten post edytował Zyx 22.12.2009, 08:27:34


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:46