Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Dr Nenad Kojić
Visoka škola strukovnih studija zainformacione i komunikacione tehnologije
O Zend_Layout -u
� Zend_Layout predstavlja jednu od komponenata Zend framework-a, namenjenu za kreiranje, korišćenje i upravljanje sadržajem kroz upotrebu templete-a
� Glavni zadaci Zend_Layout su:� Dohvata i obrađuje konkretne layout-e sa njihovim sadržajima� Obezbeđuje posebnu logiku za prosleđivanje promenjivih i
sadržaja konkretnih layout-a� Omogući samostalnu organizaciju fajlova u smislu njihovih
imena, putanja kojima se pozivaju i pratećeg skripta� Omogućava aktivaciju ili zabranu pojedinih layout-a u zavisnosti
od potreba i omogući da se ove aktivnosti pozivaju kroz kontrolere, akcije i view-ove
� Omoguće upotrebu unapred definisanih pravila prikaza (npr. ViewRenderer) ali dozvole u definisanje sopstvenih pravila
� Omogući korišćenje i bez komponenti Zend framework-a
render
� Ako se žele prikazati podaci iz nekog drugog fajla čije ime odstupa od podrazumevanog imena Actiona ili Viewa, potrebno je eksplicitno navesti ime tog fajla.
$this->view->render(“drugi.phtml“);
� //kod ako se za prikaz koristi drugi fajl koji se nalazi u nekom drugom direktorijumu
$this->view->setScriptPath('/application/scripts/mobile/about/');$this->view->render('contact.phtml');
Aktivacija� Zend layout inicijalno nije uključen, pa samim tim
nije ni aktivan� Njegova neaktivnost najlakše se vidi kroz strukturu
foldera u folderu application� Inicijalno, njegova struktura je kao na slici� Da bi se aktivirao i layout, kuca se komanda
zf enable layout
� Posledica aktivacije biće promenjena struktura foldera, jer će se pojaviti i folder layouts
� Automatski, u ovom folderu pravi se novisa nazivom scripts i sa fajlom layout.phtml
layout.phtml
� Pored standardnog HTML koda, u ovom fajlu inicijalno se nalazi linija koda kojom se dohvata i prikazuje sav prosleđeni sadržaj, od strane bilo koje druge linije koda
�
� Ako se pretpostavi da je sadržaj strane layout.phtml
Šta vidi korisnik?
� Korisniku se prvo pikazuje deo koda iz layout.phtml, do linijekoda , pa sav sadržaj koji prosleđuju svi drugi kontroleri, actioni, metodi, ..., pa drugi deo koda u layout.phtml
Ideja
� Obzirom da se kod primene layout-a, u delu za header, učitava prvi deo sajta koji korisnik vidi, ovaj deo se koristi za učitavanje svih eksternih fajlova koji web strani trebaju
� To znači da treba pronaći način kako tu smestiti sve CSS fajlove, Java Script-e, jQuery biblioteku i slično
� Sa druge strane, u vidljivom delu sajta, najčešće postoji veći broj divova namenjenih različitim sadržajima
� Treba pronaći i način kako svakom od ovih divova definisati način na koji dobija dinamički sadržaj
PrimerP1
P1
Primer 2
header
meni content baner
P2
Layout
/stil.css" type="text/css">
P2
Kontroler
Ostale .phtml strane� Index.phtml
� meni.phtml
Item 1 Item 2 Item 3 Item 4 Item 5
� Baner.phtml
Parcijalni šabloni (Partial View)
� Mnoge stranice se sastoje iz delova koji su zajednički tj. imaju isti kod za prikazivanje sadržaja.
� Ova vrsta šablona se može koristiti i više puta u okviru strane.
� Što se tiče imena pomenljivih u okviru parcijalnih šablona ona mogu biti ista kao i imena u glavnom prikazu (view-u) jer parcijalni šabloni predstavljaju zasebne poddomene.
� Bilo bi dobro da se usvoje načini na koji se imenuju fajlovi koji se odnose na parcijalne šablone.
� Fajlovi se smeštaju u application/views/scripts .
Primer
� Vrlo pogodno za forume, blogove, komentare, sajtove gdese prikazuju proizvodi i sl.
Helpers
� Helperi su posebni dodatak koji služi za lakše pripremanje pojedinih delova sadržaja (sajta)
� Krajnji cilj im je priprema materijala za prikazivanje� Za razliku, od uopštenih view-a, oni se koriste za neke
karakteristične delove aplikacije, koje su najčešće standardizovane, relativno jednostavne i predvidive
� Primer za helpere: formatiranje datuma u unapred definisanom obliku, prikaz linkova, prikaz banera, ...
� U Zend framework-u postoji veliki broj unapred definisanih Helpera, koje samo treba primeniti i ostvariti njihovu funkcionalnost na neki sadržaj aplikacije
HelpersNaziv Opis
Action Omogućavanje slanja akcije kontrolera
BaseUrl Definisanje korena URL adrese
Currency Prikaz iznosa u lokalnom formatu
Cycle Prikazuje podatke sa “zebra” efektom
Partial Korišćenje template-a sa svojim promenljivim
Placeholder Omogućavaju konzistentnost kod korišćenja view skripti i njihovih instanci
JSON Koristi se kod view-a koji vraća JSON
Breadcrumbs Koristi se za trenutno pozicioniranje korisnika unutar sitemap-a
Links Koristi se kod obrade link tagova u HTML-u
Menu Koristi se kod kreiranja menija
Sitemap Koristi se kod generisanja XML sitemap-a
TinySrc Omogućava API za promenu dimenzija ili formata slike
Translate Omogućava prevođenje sadrćaja sajta na više jezika
Konkretni primeri helper-a Placeholder:
Naziv Opis
Doctype Integriše DOCTYPE direktivu u html dokument
HeadLink Genisanje koda za eksterni CSS, favicon, RSS
HeadMeta Generisanje meta tagova
HeadScript Generisanje dela za script-ove
HeadStyle Generisanje style taga
HeadTitle Generisanje Title taga u HTML-u
InlineScript Omogućavanje dodavanja ili uklanjanja inline klijentskog sktipta
Primeri helper-a u kodu*
*/
Navigation
Primeri helper-a u kodu$this->navigation()
->sitemap()->setFormatOutput(true); // default is false
echo $this->navigation()->sitemap();
Primeri helper-a u kodu
Sopstveni helper� Pored helpera koji dolaze kao deo framework-a, programerima je
na raspolaganju i mogućnost samostalnog pisanja helper-a� Ovi helperi se kreiraju u obliku php strane i smeštaju u folder
application/views/helpers/
� Jedino pravilo koje se mora ispoštovati je da se kod piše unutar
klase koja je izvedena iz ugrašene klase
Zend_View_Helper_Abstract
� Primer
Dr Nenad Kojić
Visoka škola strukovnih studija zainformacione i komunikacione tehnologije