Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CMS/szablon - ładowanie laya
Forum PHP.pl > Forum > PHP
Jarod
Witajcie.. Coraz bardziej zagłębiam się w php i ostatnio czytałem dużo o szablonach, itp.

Postanowiłem, że zacznę tworzyć własnego cms (sztuka dla sztuki, żeby się czegoś nauczyć, nabrać doświadczenia).

Odpowiednio przygotuję układ katalogów i plików. Chodzi mi teraz po głowie rozwiązanie pewnego problemu. Załóżmy, że przygotuję wstępnie 3 layouty i chciałbym, żeby użytkownik mógł dodwać swoje albo zmieniać na 1 z 3 dostępnych standardowych.

Zakładam, że gdzieś w pliku konfiguracyjnym jest napisane, że domyślnie łądowany jest layout numer 1. I co dalej? Piszemy jakąś funkcję, która załąduje ten lay? Ale jak? W jakimś katalogu (np. public_html/layout) znajdują się pliki graficzne, któe wchodzą w skład laya?

Jak to ugryźć tak od strony teoretycznej - żebym załapał zasadę..



Ps. Tak naprawdę to po co się stosuje szablony?
Po co ludzie piszą własne parsery? Przecież traci się na wydajności (odwołuje się do artykułu na http://webcity.pl - "Budujemy engine")
LBO
szablony stosuje sie zeby oddzielic warstwe prezentacyjna od programistycznej... w życiu wyglada to tak,że graficy i programisci to dwie rozne sfery w przykladowej firmie IT.. szblony ulatwiaja grafikom tworzenie layoutu (nie musza sie uczyc php, conajwyzej kilku szablonowych znacznikow i nieskomplikowanych funkcji) i przyspiesza tworzenie strony

edit:
co do pyt. o stukture plikow... ja mam katalog templates i tam zakladam kolejne katalogi z nazwami themow - zawieraja one pliki szablu jak i grafiki.
bim2
Ja tak też robie, mam katalog theme/default/ theme/a/ i default i a to themy sa winksmiley.jpg, a pozniej to pasruje odpowiednio (mam na tpl) ale mozna zrobic tez na iclude jak w jp. Wglebij sie w to jak na tpl nie umiesz smile.gif
matipl
Cytat(bim2 @ 2006-04-13 09:44:46)
Ja tak też robie, mam katalog theme/default/ theme/a/ i default i a to themy sa winksmiley.jpg, a pozniej to pasruje odpowiednio (mam na tpl) ale mozna zrobic tez na iclude jak w jp. Wglebij sie w to jak na tpl nie umiesz smile.gif

Po pierwsze, uzywasz jakieś systemu szablonów: Smarty albo Flexy?
Jarod
Cytat(LBO @ 2006-04-12 23:28:15)
szablony stosuje sie zeby oddzielic warstwe prezentacyjna od programistycznej... w życiu wyglada to tak,że graficy i programisci to dwie rozne sfery w przykladowej firmie IT.. szblony ulatwiaja grafikom tworzenie layoutu (nie musza sie uczyc php, conajwyzej kilku szablonowych znacznikow i nieskomplikowanych funkcji) i przyspiesza tworzenie strony

edit:
co do pyt. o stukture plikow... ja mam katalog templates i tam zakladam kolejne katalogi z nazwami themow - zawieraja one pliki szablu jak i grafiki.

Jak taki szablon jest zbudowany? Gdzie mogę znaleźć o tym jakieś szczegółowe informacje?

Korzystacie z gotowych szablonów czy budujecie kod sami?
matipl
Ja na początku przygód z szablonami używałem Smarty, ale wydał mi sie zbyt duży, nie podoba mi sie też strasznie że w szablonie można tworzyć zmienne i dość duże operacje.
Od stycznia jadę na Flexy, jest kilka nie doróbek, ale za to całą logikę biznesową mam naprawdę w php, a nie w szablonach.
bim2
Nie, napisalem wlasny Moze nie odbajerowny ale wlasny ^^, na moje potrzeby starcza tongue.gif (nie pokaze go) Rkingsmiley.png

EDIT: tyczy sie to do pytania o jaki szablon uzywam ^^^, nie odswiezylem strony winksmiley.jpg
Yacho
Uwazam ze pisanie wlasnych szablonow - jesli nie gonia nas milisekundy w czasie generowania strony i chcemy miec absolutnie najwieksza wydajnosc - jest odkrywaniem po raz milionowy koła na nowo....

a co do duzej ilosci operacji w smarty - kiedys byl artykul na ten temat - jest cos takiego jak logika biznesowa i logka prezentacji - zadaniem smarty nie jest calkowite oddzielenie statycznego layoutu od wszelkich dynamicznych tresci - zadaniem jest oddzielenie logiki biznesowej od logiki prezentacji - logika prezentacji moze byc (i czesto bywa) bardziej skomplikowana niz logika biznesowa....
Jarod
Cytat(Yacho @ 2006-04-13 11:49:39)
Uwazam ze pisanie wlasnych szablonow - jesli nie gonia nas milisekundy w czasie generowania strony i chcemy miec absolutnie najwieksza wydajnosc - jest odkrywaniem po raz milionowy koła na nowo....

Napisałem, że chcę coś takiego stworzyć bo chcę głębiej poznać php, chcę to stworzyć na własny użytek i przy okazji się czegoś nauczyć. Nie chcę korzystać z gotowców.

Jak taki szablon jest zbudowany? Gdzie mogę znaleźć o tym jakieś szczegółowe informacje?
di_kamilo
Cytat
Zakładam, że gdzieś w pliku konfiguracyjnym jest napisane, że domyślnie łądowany jest layout numer 1. I co dalej? Piszemy jakąś funkcję, która załąduje ten lay? Ale jak? W jakimś katalogu (np. public_html/layout) znajdują się pliki graficzne, któe wchodzą w skład laya?


No tak, załóżmy że masz katalog templates/ i tam masz kolejne katalogi w których są szablony. Teraz dajmy na to że w pliku konfiguracyjnym masz zapisane nazwy szablonów i ścieżki do nich.

I teraz każdy użytkownik serwisu ma zapisane w bazie danych lay którego używa. Wystarczy że napiszesz funkcje sprawdzającą jaki to lay i ppodmieniasz ścieżkę domyślnego laya na tek który użuwa dany user.

Przykładowo dla pasera szablonów

$lay = ... ;pobierasz z bazy nazwe szablonu

$tpl->setDir( 'templates/$lay' );

...
Jarod
Cytat(di_kamilo @ 2006-04-13 17:21:00)
Cytat
Zakładam, że gdzieś w pliku konfiguracyjnym jest napisane, że domyślnie łądowany jest layout numer 1. I co dalej? Piszemy jakąś funkcję, która załąduje ten lay? Ale jak? W jakimś katalogu (np. public_html/layout) znajdują się pliki graficzne, któe wchodzą w skład laya?


No tak, załóżmy że masz katalog templates/ i tam masz kolejne katalogi w których są szablony. Teraz dajmy na to że w pliku konfiguracyjnym masz zapisane nazwy szablonów i ścieżki do nich.

I teraz każdy użytkownik serwisu ma zapisane w bazie danych lay którego używa. Wystarczy że napiszesz funkcje sprawdzającą jaki to lay i ppodmieniasz ścieżkę domyślnego laya na tek który użuwa dany user.

Przykładowo dla pasera szablonów

$lay = ... ;pobierasz z bazy nazwe szablonu

$tpl->setDir( 'templates/$lay' );

...

Dziękuje za odpowiedź. O to mi chodziło. Ale nasuwa się inne pytanie... Przy każdym przeładowaniu strony te dane będą pobierane (odczyt z bazy) a to obniża wydajność (klikasz coś, wybierasz coś w menu to następuje przeładowanie i znowu sprawdzane jest który szablon ma być załadowany). Można ustawić w sesji że szablon jest wybrany ale czy ustawianie dużej ilości zmiennych sesyjnych nie obniża wydajności?

Po co ludzie piszą swoje parsery (gdzieś ostatnio takie 2 artykuły mi się przewinęły i zacząłem się zastanawiać)..
matipl
Cytat(J4r0d @ 2006-04-13 22:24:09)
Dziękuje za odpowiedź. O to mi chodziło. Ale nasuwa się inne pytanie... Przy każdym przeładowaniu strony te dane będą pobierane (odczyt z bazy) a to obniża wydajność (klikasz coś, wybierasz coś w menu to następuje przeładowanie i znowu sprawdzane jest który szablon ma być załadowany). Można ustawić w sesji że szablon jest wybrany ale czy ustawianie dużej ilości zmiennych sesyjnych nie obniża wydajności?

Po co ludzie piszą swoje parsery (gdzieś ostatnio takie 2 artykuły mi się przewinęły i zacząłem się zastanawiać)..

Smarty oraz Flexy potrafią cache-ować raz przerobione templaty.
Jarod
Cytat(matipl @ 2006-04-14 09:01:47)
Cytat(J4r0d @ 2006-04-13 22:24:09)
Dziękuje za odpowiedź. O to mi chodziło. Ale nasuwa się inne pytanie... Przy każdym przeładowaniu strony te dane będą pobierane (odczyt z bazy) a to obniża wydajność (klikasz coś, wybierasz coś w menu to następuje przeładowanie i znowu sprawdzane jest który szablon ma być załadowany). Można ustawić w sesji że szablon jest wybrany ale czy ustawianie dużej ilości zmiennych sesyjnych nie obniża wydajności?

Po co ludzie piszą swoje parsery (gdzieś ostatnio takie 2 artykuły mi się przewinęły i zacząłem się zastanawiać)..

Smarty oraz Flexy potrafią cache-ować raz przerobione templaty.

Nie interesują mnie gotowe systemy. Chcę dla siebie napisać własny i dlatego się pytam jak to działa. Jak rozwiązań problem ponownego wczytywania szablonu? Cachewanie wystarczy? Są inne sposoby?
di_kamilo
Cytat
Przy każdym przeładowaniu strony te dane będą pobierane (odczyt z bazy) a to obniża wydajność


Zawsze można zpisac w ciasteczku albo w jakiejś zmiennej która będzie przekazywana przez url itp.
Jarod
Cytat(di_kamilo @ 2006-04-14 10:30:00)
Cytat
Przy każdym przeładowaniu strony te dane będą pobierane (odczyt z bazy) a to obniża wydajność


Zawsze można zpisac w ciasteczku albo w jakiejś zmiennej która będzie przekazywana przez url itp.

Zgadza się ale nie wiem na ile to będzie efektywne (chodzi mi o podejści profesjonalne). Zważ, że kilka zmiennych będzie przez url przekazywanych. Zastanawiam się czy nie ma innygo sposobu - pytam się bo nie wiem jak to się jest zaimplementowane w np w Smarty
matipl
Cytat(J4r0d @ 2006-04-14 12:42:55)
Zgadza się ale nie wiem na ile to będzie efektywne (chodzi mi o podejści profesjonalne). Zważ, że kilka zmiennych będzie przez url przekazywanych. Zastanawiam się czy nie ma innygo sposobu - pytam się bo nie wiem jak to się jest zaimplementowane w np w Smarty

dałem Tobie przykład gdzie znajdziesz właśnie zaimplemetowane cachowanie.
Trudno jest ściągnąć Smarty lub Flexy i spojrzeć jak to robią?

PS: Brany jest template zamieniane są tagi {} na php-owe i takie cos jest w cache
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.