Zdravo. Želim vam predstaviti još jedan bicikl napisan u PHP-u objekt dokumenta Model. Koja je njegova razlika od ostalih predstavnika iste vrste na tri kotača? Zapravo, nema toliko razlika, kombinuje najbolje od mnogih. Na primjer:
1. Potpuno razdvajanje html-a i php-a.
2. Nema dodatnih oznaka u predlošcima tipa
3. Mogućnost ugrađivanja sadržaja drugih šablonskih datoteka u izgled, kako iz php-a tako i korištenjem posebne oznake u izgledu.
4. Mogućnost kreiranja bilo koje html oznake u hodu.
5. Mogućnost spremanja na html fajl sve što je generisano i prikupljeno.
6. Provjera postojanja html datoteke tražene stranice prije generiranja šablona.
Da svima bude odmah jasno koliko je zgodan i lak za korištenje, ispričat ću i pokazati kako sam ga koristio za kreiranje jednog od svojih projekata (sumnjam da ću sve svoje projekte prepisati za njega).
Prva stvar koju obično radim je da dobijem sve informacije iz baze podataka o stranici ( ključne riječi, opis stranice, naziv šablona i adrese css i js datoteka). Sve ovo spremam u niz $head. Zatim dobijam sadržaj iz baze podataka i spremam ga u niz $page. I ja ću raditi sa razredom.
Dakle, prvo pozivam konstruktor klase i prosljeđujem sve u njega potrebne parametre:
$tpl = novi šablon; $tpl -> ext = TPL_EXTENSION; # ekstenzija datoteke u direktoriju šablona $tpl -> htm = CACHE_EXTENSION; # ekstenzija za već generisane stranice $tpl -> skin_dir = DIR_TEMPLATES; # direktorij koji sadrži sve šablone stranice (na primjer šablone) $tpl -> js_dir = DIR_JS; # direktorij gdje tražiti JS datoteke $tpl -> css_dir = DIR_CSS; # direktorij u kojem se nalazi CSS $tpl -> img_dir = DIR_IMG; # direktorij u kojem su slike $tpl -> skin = $_SESSION["skin"]; # naziv šablona koji želim da koristim $tpl -> cache = DIR_CACHE; # gdje spremiti gotovi html $tpl -> log = FILE_T_LOGS; # gdje pisati dnevnike $tpl -> tag_start = SYMBOL_START_TAG; # Simbol sa kojim varijable u šablonu počinju $tpl -> tag_end = SYMBOL_END_TAG; # Znak koji završava varijable u šablonu $tpl -> dir_delimeter = DIRECTORY_SEPARATOR; $tpl -> razmak = SYMBOL_SPACE; # znak koji zamjenjuje razmak.
Fuf, izgleda da su sve varijable prebačene, idemo dalje.
Kako ne bismo prisilili klasu da radi dodatni posao, prvo provjeravamo da li već imamo gotovu HTML datoteku tražene stranice.
if($tpl -> TestPageStatus() === TRUE) ( zahtijevaju $tpl -> cacheFileName; ) else ( $tpl -> page("index"); # proslijedite ime datoteke šablona, usput, vi može proslijediti nekoliko njih, odvojenih zarezima $tpl -> assign("HEAD",$head); $tpl -> assign("CONTENT",$page); $tpl -> build(); # naredba za pravljenje šablona $tpl -> ShowPage(); # izlaz.)
To su zapravo sve metode koje trebate koristiti da biste prikazali stranicu.
Pogledajmo sada još nekoliko korisnih metoda ove klase. Recimo da smo već proslijedili sve što je potrebno klasi, ali joj još nismo dali komandu za izlaz, jer smo se odjednom sjetili da trebamo kreirati nekoliko Html oznaka u šablonu. Ovo je takođe vrlo lako uraditi. Prvo moramo pronaći blok u koji želimo nešto dodati. Možete ga pronaći na 2 načina:
$tpl -> findById("findMe"); $tpl -> findByTagName("div");
Metoda findById logično implicira da su sve id oznake u predlošku jedinstvene. Metoda findByTagName će vratiti prvi odgovarajući.
Moramo proslijediti rezultat koji smo dobili pretragom metodi $tpl -> createChild() da bismo mogli kreirati podređene oznake u pronađenom elementu. Metoda createChild, inače, nakon kreiranja novog elementa, vraća nam ga, kako bismo novostvoreni element mogli koristiti negdje drugdje.
Čeprkajući i eksperimentirajući, pronašao sam 3 načina za kreiranje oznaka u šablonu, pa ću pokazati 3 primjera odjednom. Primjer 1:
Moramo da stvaramo
unutra$parent = $tpl -> findById("roditelj"); $tpl -> createChild($parent,"div", "id=child, class=test");
Dobijamo:
Primjer 2:
Moramo da stvaramo
$parent = $tpl -> findById("roditelj"); $tpl -> createChild($parent,"div", "id=child,class=test", "Neki tekst");
Dobijamo:
Primjer 3:
Moramo da stvaramo
$parent = $tpl -> findByTagName("span"); # (1) $tpl -> createChild($parent, "div", "Novi element"); # (2)
(1) Pretraživanje roditelja ne po ID-u, već po tag-u naći će se prvi odgovarajući
(2) Ako nam nisu potrebni atributi, već samo vrijednost novog elementa, onda oni ne mogu biti proslijeđeni
Dobijamo:
I nakon ovih manipulacija, već zovem ShowPage. I tu smo se glatko približili još 2 zanimljive tačke.
Zamislimo situaciju da imamo šablon, pretpostavimo da je to list.tpl šablon sa listom, recimo, mobilnih telefona:
(Marka SADRŽAJA)
(SADRŽAJ.Model)
(CONTENT.Info)Ako smo prenijeli informacije samo sa 1 telefona, tada će varijable jednostavno biti zamijenjene njihovim vrijednostima, a ako smo prenijeli informacije sa više telefona odjednom, onda će klasa kopirati ovaj odjeljak onoliko puta koliko je primila opcije vrijednosti. I on će to učiniti sam, za razliku od, na primjer, klase xTemplate, koja je morala pozvati assign i parse za svaku vrijednost
Istina, postoji jedan ne baš zgodan trenutak, ako nakon ovog bloka postoje neki drugi, na primjer:
(Marka SADRŽAJA)
(SADRŽAJ.Model)
(CONTENT.Info)Tada ćemo u takvoj situaciji morati primijeniti mali trik pakovanjem mobilnog telefona
(Marka SADRŽAJA)
(SADRŽAJ.Model)
(CONTENT.Info)U ovom slučaju, svi mobilni telefoni će se pojaviti jedan za drugim, unutra , i "Neki drugi blok" će ostati na dnu.
I, ako nisam ništa zaboravio, onda je zadnji trenutak dodavanje sadržaja drugih šablona trenutnom šablonu.
Ponovo se pozivam na vašu maštu.
Zamislite da dizajner izgleda želi da se sadržaj datoteke page.html doda u blok datoteke list.html, za to on dodaje na pravo mjesto u datoteci list.html
Broj takvih umetaka nije ograničen i njihova lokacija apsolutno nije kritična, tako da ih možete umetnuti kako želite iu bilo kojoj količini.
To je verovatno sve, ako se nečega setim javiću ti. Hvala vam što ste pročitali do kraja.
Oznake: php, klasa, šablon, šablonski mehanizam, parser
Nakon stvaranja info-file, u principu, tema je već definisana. To znači da možete otići u odjeljak za upravljanje temama http://mysite.ru/admin/build/themes i uključite svoju temu tamo. Naravno, nakon što ga uključite, nećete vidjeti nikakav dizajn - stranica će dobiti stil "crno na bijelom" - crni tekst na bijeloj pozadini.
Međutim, želim napomenuti da uprkos činjenici da u našoj temi nema datoteka osim mytheme.info ne laže, stranica će raditi kao i prije - prikazati sav sadržaj, dodati blokove regijama ( http://mysite.ru/admin/build/block) I tako dalje. To je zbog činjenice da Drupal jezgro uključuje potrebnih modula, koji vam čak i u nedostatku bilo kakvih datoteka u vašoj temi (osim info-fajla) omogućava da nastavite raditi s Drupalom.
U principu, sve kreiranje šablona se svodi na preklapanje datoteka šablona (oni imaju ekstenziju .tpl.php) standardni moduli naše CMS.
Najvažnija tpl datoteka (tpl je skraćenica od šablon, uzorak) je page.tpl.php. On je odgovoran za izgradnju svake stranice stranice. Pogledajmo od čega se sastoji datoteka šablona:
- html kod
- php kod
- javascript kod(nije potrebno)
Drupal prosljeđuje podatke o web lokaciji svakoj datoteci šablona u obliku standardnih varijabli. Postoje 2 tipa varijabli za svaku datoteku šablona:
- varijable koje se prosljeđuju samo ovoj datoteci
- varijable koje se prosljeđuju svim datotekama
Ovdje je lista svih varijabli za page.tpl.php:
Opće varijable (za sve datoteke):
- $base_path- osnovna staza na kojoj je Drupal instaliran
- $css- niz css datoteka povezanih sa trenutnom datotekom šablona
- $directory- put do fascikle u kojoj je tema instalirana
- $is_front- vraća TRUE ako ste na glavnoj stranici
- $logged_in- vraća TRUE ako ste prijavljeni
- $is_admin- vraća TRUE ako imate administratorski pristup
Metapodaci stranice
- $language- (predmet) Trenutni jezik koji je prikazan na sajtu
- $language->language- sadrži svoj tekstualni prikaz
- $language->dir- sadrži smjer jezika. To će biti ili "ltr" (slijeva nadesno) ili "rtl" (zdesna nalijevo)
- $head_title- izmijenjena verzija naslova stranice, za korištenje između oznaka
- $head- umetnuto između oznaka . Sadrži meta oznake, ključne riječi itd.
- $styles- služi za preuzimanje svih css-fajlovi na trenutnu stranicu
- $scripts- služi za preuzimanje svih javascript"s na trenutnu stranicu
- $body_classes- skup časova css za oznaku . Sadrži informacije o trenutnoj lokaciji kolona na stranici, njihovom broju, trenutnom URL-u "e, itd.
Informacije o sajtu
- $front_page- adresa glavne stranice stranice. Bolje je koristiti ovu varijablu za upućivanje početna stranica, jer uključuje jezik domene i prefiks
- $logo- put do logotipa stranice, ako je uključen na stranici
- $site_name- naziv stranice. Može biti prazan ako je onemogućen u funkcijama u info datoteci. Konfigurirano na mysite.ru/admin/settings/site-information
- $site_slogan- slogan sajta. Može biti prazan ako je onemogućen u funkcijama u info datoteci. Konfigurirano na mysite.ru/admin/settings/site-information
- $mission- misija stranice. Može biti prazan ako je onemogućen u funkcijama u info datoteci. Konfigurirano na mysite.ru/admin/settings/site-information
Navigacija
- $search_box- sadrži html kod koji prikazuje traku za pretraživanje. Može biti prazan ako ga isključite u info datoteci
- $primary_links
- $secondary_links- niz koji sadrži navigacijske veze za stranicu, ako su dozvoljene u karakteristikama info datoteke
Zadani sadržaj stranice
- $left- region. Sadrži html kod za lijevu kolonu. Ako postavite bilo koju regiju u info datoteci, ona nestaje
- $breadcrumb - "mrvice hljeba"za trenutna stranica
- $title- naslov stranice
- $help- dinamički savjeti, uglavnom prikazani u admin panelu
- $messages- Prikazuje poruke o greškama i upozorenjima na stranici
- $tabs- veze (kartice) koje povezuju trenutnu stranicu sa njenim podstranicama (na primjer, za članak - sa njegovom stranicom za uređivanje)
- $content- sadržaj trenutne stranice
- $right- region. Sadrži html kod za desnu kolonu. Ako postavite bilo koju regiju u info datoteci, ona nestaje
Podaci o dnu/zatvaranju
- $feed_icon- linija sa svim ikonama povratne informacije za trenutnu stranicu
- $footer_message- poruka na dnu stranice. Konfigurirano na mysite.ru/admin/settings/site-information
- $footer- region. Sadrži html kod za dno stranice. Ako postavite bilo koju regiju u info datoteci, ona nestaje
- $closure- završna oznaka za sve module koji su modificirali stranicu. Ova varijabla mora biti prikazana nakon svih dinamičkih sadržaja. Najbolje prije zatvaranja oznake BODY
Svi su navedeni ovdje standardne varijable. Ali možete dodati svoje varijable ovdje ili kao regije putem info-file, ili u bilo kojoj drugoj ulozi kroz datoteku template.php(o njemu malo kasnije).
Sada ću pokazati u kojem kodu treba biti page.tpl.php i koji kod ga onda tumače pretraživači. Ovdje je dio koda iz page.tpl.php:
Prvi red provjerava da li trenutna stranica uopće ima naslov. Ako ga nema, debuger će jednostavno preskočiti ovaj kod i neće ulaziti u njega. Ako naslov postoji, tada će se oznaka dodati u html kod stranice
, nakon njega će se ispisati naslov stranice, a cijela stvar će biti zatvorena oznakom
. Ako pogledate kod ove stranice u pretraživaču, to bi izgledalo ovako:
Lekcija 4 Potrebni fajlovi za kreiranje šablona. Page.tpl.php
Gotovo sve varijable web mjesta su omotane na ovaj način. To je učinjeno kako bismo mogli propisati stilove za sadržaj, a da ne znamo unaprijed šta će to biti.
Ovako to izgleda standardni fajl page.tpl.php koji dolazi uz Drupal. Promenite naziv klasa, preuredite varijable - i pogledajte šta se dešava. Ovo je neophodno da bi se „osetilo“ kako funkcioniše i šta se kao rezultat dobija.
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/1999/xhtml" xml:lang= "jezik ?>" lang= "jezik ?>" dir = "dir ?>">
"title="(!LANG:"rel="home">print $site_name ; ?>
Odvajanje logike za dobivanje podataka od logike za njihovo prikazivanje je vrlo važan dio web razvoja.
Svaki programer koji se popeo malo iznad nivoa "Zdravo, svijete" počinje osjećati potrebu za takvim odvajanjem. Ali ne dolaze svi do pravih zaključaka i odluka.
Stoga ću ovdje dati najvažnija pravila:
1. Kod prijema i kod za prikaz podataka moraju biti odvojeni.
2. Svako povlačenje treba započeti tek nakon što su svi podaci spremni za to.
3. Kao posljedica toga, svaka skripta treba da se bavi samo obradom podataka. Nakon toga, može ili poslati neko HTTP zaglavlje, ili pozvati šablon, proslijeđujući mu pripremljene podatke, ili oboje.
4. Deseta stvar je kakvu vrstu šablona koristiti. Najjednostavniji i najpristupačniji je sam PHP, pa će na njemu biti dati primjeri.
Delusions
Vjerovatno ne postoji tema u web programiranju koja je toliko očigledna koliko neshvatljiva kao šabloni. Svi, prije ili kasnije, dođu do zaključka o potrebi korištenja šablona. Ali dolazi, iz nekog razloga, kroz neke najluđe zablude i fantazije.
Najjednostavnija i najočitija zabluda je da početnici predložak smješten u zasebnu datoteku nazivaju "dizajnom" - zajedničkim html-om za sve stranice web-mjesta. I na ovome se smire. Dinamične informacije, bez oklijevanja, izlazeći stari dobri eho :-)
Zapravo, predložak se uglavnom bavi prikazivanjem promjenjivog sadržaja stranica web stranice. A zaključak "dizajna" je sporedni zadatak.
Postoje dvije glavne fantazije:
1. Šabloni su potrebni "dizajneru" kako bi ih mogao uređivati bez razumijevanja PHP-a.
2. Stoga, šabloni služe za odvajanje PHP-a od HTML-a.
Pokušajmo razmisliti o prvoj izjavi. Ko je dizajner? Ovo je osoba koja radi u Photoshopu. On najčešće uopšte ne zna HTML. I na predlošku radi ili poseban layout dizajner ili - najčešće ... sam programer! Smiješno, zar ne?
Sada posljedica, o odvajanju PHP-a od HTML-a. U redu. Pred nama je sveti cilj razdvajanja. Stoga izmislimo Smarty i zapišemo:
(foreach ključ=cid item=con from=$contacts)
($con.name) - ($con.nick)
(/za svaki)
Još smješnije.
"Dizajner", zbog kojeg je sve i započeto, pada u nesvijest od sreće.
Teorija
Ispostavilo se da naši razlozi zašto smo odlučili koristiti šablone nisu vrijedni ni penija. I šta sad - nisu potrebni, ispostavilo se, šabloni uopšte? Needed. Ali prvo morate sebi odgovoriti na pitanje - "zašto?" Za što potrebni su šabloni. I provjerite odgovor vježbom. Ovo pitanje sam postavljao ljudima mnogo puta. Ali skoro niko ne može da odgovori. Zašto mu trebaju šabloni. Ispostavilo se da ljudi rade nešto a da ne znaju zašto.
Ovo je najsmješnija stvar.
Tokom svoje karijere web programera, formulisao sam za sebe tri razloga zašto su meni lično potrebni šabloni. U stvari, postoje dva. Ali na kraju se svode na jedno:
Jedan kod - više prikaza.
Često se dešava da je umjesto jedne informacije potrebno prikazati drugu. Na primjer, kod za rad sa bazom podataka prima poruku o grešci umjesto teksta vijesti. U ovom slučaju, umjesto stranice s vijestima, trebate prikazati potpuno drugačiju stranicu - sa izvinjenjem i zahtjevom da se vratite kasnije. Šabloni ovo olakšavaju.
Često je iste informacije potrebno prikazati u nekoliko oblika. Na primjer - normalna stranica i stranica za štampanje. Informacija je ista, šifra za njen prijem je ista, ali izlazni kod je drugačiji. Suočeni s takvom situacijom, vrlo brzo ćete svoj kod podijeliti na dva dijela, od kojih je jedan odgovoran za izlaz, a drugi nije odgovoran. Drugi primjer: recimo da želimo prikazati informacije ne direktno u HTML-u, već putem AJAX zahtjeva, u JSON formatu. Ako smo koristili šablonski mehanizam, tada mijenjamo tačno jednu liniju u našem kodu - pozivajući šablonski mehanizam u pozivanje json_encode() . A ako bismo imali izlaz pomiješan sa kodom za dobijanje podataka, onda ceo kod bi se morao ponovo napisati!
Situacija je donekle slična: recimo da je naša skripta na dva sajta. Plus kopija kod kuće. I ovdje kod kuće smo pronašli veliku bubu. Prikovali su je. Sada moramo ažurirati kod na stranicama. I evo ga - trenutka istine: ako su predlošci ispravno korišteni, onda jednostavno učitavamo kod na obje stranice i sve nastavlja raditi, kao da se ništa nije dogodilo! Takva situacija je, po mom mišljenju, idealan test za odabrani pristup šabloniranju.
Još jedna važna stvar koju mnogi propuštaju (u svom teorijskom rasuđivanju, dok se s njom stalno susreću u praksi!) - redoslijed izvršavanja skripte ne odgovara uvijek izlaznom redoslijedu u predlošku. Primjer iz udžbenika - prikazivanje naslova članka u oznaci
Takođe treba imati na umu da pored PHP teksta, skripte takođe prikazuju HTTP zaglavlja. Koji se mora prikazati prije bilo kojeg teksta, ili čak umjesto teksta općenito (ako, na primjer, želimo korisnika preusmjeriti na drugu stranicu). Ako prvo implementiramo logiku aplikacije, a da pritom ništa ne prikazujemo, tada nam davanje željenog HTTP zaglavlja neće predstavljati problem.
Možda imate svoje razloge za korištenje šablona. Ali uz samo jedan uslov - ovi razlozi moraju biti uzrokovani stvarnom, životnom nužnošću, a ne "višim obzirima" i brigom za neke vama nepoznate ljude.
Vježbajte
Pređimo sada s teorije na praksu.
U najjednostavnijem slučaju, dva šablona će uvijek sudjelovati u prikazu bilo koje stranice: opći predložak stranice i šablon sadržaja za određenu stranicu.
Recimo da želimo da napravimo stranicu sa linkovima ka veb lokacijama prijatelja.
U ovom slučaju, pojednostavljeni kod bi izgledao ovako:
Sama datoteka links.php. Izlazi NIŠTA. Samo priprema podatke, a zatim poziva šablon.
// omogući postavke.
uključiti "settings.php" ;
// dobiti podatke iz baze podataka, definirati varijable
$pagetitle = "(!LANG:Veze"
;!}
$DATA = $db -> getAll("SELECT * FROM links" );
//postavimo predložak stranice i pozovimo opći šablon stranice
$tpl = "tpl_links.php" ;
uključiti "tpl_main.php" ;
Opšti šablon (tpl_main.php):
include $tpl ?>
Na pravom mjestu uključuje naš predložak stranice (tpl_links.php):
=$pagetitle?>
- "target="_blank">=$row [ "name" ] ?>
foreach($DATA as $row ): ?>
endforeach ?>
Najlakši način je da napravite šablone na osnovu statičkih stranica koje su već postavljene u HTML-u. Razmislite o stvaranju i povezivanju predloška koristeći primjer. Recimo da već imate HTML fajl sa sljedećim sadržajem:
<html > <glava > <metaname= "opis"content= /> <metaname= "ključne riječi"content= /> <naslov >naslov > <link href= style.css rel= "style sheet" type= "text/css" /> glava > <tijelo >// početak menija<table border= "1" > <tr > <td ><href= "/" > <b> Domb>a >td > tr > <tr > <td ><href= "/o/"> O menia >td > tr > <tr > <td ><href= "/ja_i_ja/"> Ja i svjetska dominacijaa >td > tr > <tr > <td ><href= "/kontakti/"> Kontaktia >td > tr > stol >// kraj menija<h1 > Glavna stranicah1 > <p > p > <p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p > <p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p > <p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p > tijelo > html >Da biste dodali predložak u CMS, morate kreirati datoteku u direktoriju tpls/content, na primjer, test.tpl, i tamo zalijepiti svoj HTML kod. CSS fajl treba da bude smešten u fasciklu css/cms i nazvan style.css . Poželjno je da slike budu smeštene u folder slika. Ne zaboravite promijeniti putanje do svih slika i CSS datoteka.
Komentar
Nemojte koristiti ruska slova u nazivu datoteke šablona!
Da bi sistem „video” novi šablon i počeo da ga koristi za prikaz stranica, predložak se mora dodati sistemu. Da biste to učinili, idite na postavke modula " Struktura", karticu " Predlošci» ( http://yourdomain.ru/admin/content/config/ ). Vidjet ćete listu već instaliranih predložaka u svakoj domeni koji postoje u verziji odabranog jezika.
Da povežete novu datoteku šablona, popunite polja " Naziv šablona” (dajte mu neko smisleno ime, na primjer “ Moj test uzorak"") i " Ime datoteke" (u našem slučaju test.tpl) i kliknite na "Sačuvaj".
Ako želite da se ovaj predložak koristi kao zadani predložak, označite polje "Osnovno" pored njega. Ovaj predložak će sada biti odabran prema zadanim postavkama u padajućem izborniku za odabir šablona. Također će se koristiti za prikaz sistemskih stranica koje koriste zadani predložak (Registracija, Oporavak lozinke, Sitemap).
Šabloni će biti vidljivi na padajućoj listi prilikom uređivanja svake stranice:
Dakle, mnogi predlošci se mogu koristiti istovremeno na jednoj stranici, birajući odgovarajući predložak i za jednu stranicu i za grupu stranica.
Pokušajte kreirati novu stranicu (uvjerite se da je novi predložak odabran u opciji Design Template) i pogledajte što se događa na stranici.
Vaš HTML predložak bi se trebao pojaviti na web stranici. Ali sada je statična. Sada ga morate učiniti dinamičnim.
Prvo, morate odrediti koji će se dijelovi HTML koda promijeniti. U našem slučaju će se promijeniti sljedeće:
naslov prozora
ključne riječi i meta tagovi opisa;
naslov teksta
;
stvarni tekst;
meni sajta.
To znači da moramo malo poraditi sa HTML šablonom i staviti odgovarajuće makroe umjesto da mijenjamo sekcije.
Na primjer, na početku HTML datoteke postavljaju se meta oznake i naslov:
<metaname= "opis"content= "Opis web stranice Vasilija Pupkina" /> <metaname= "ključne riječi"content= "Službena stranica Vasya Vasily Pupkin" /> <naslov > Web stranica Vasye Pupkina: Glavna stranicanaslov >Zamjenjujemo ih odgovarajućim makroima (popis makroa je dat u dodatku):
<metaname= "opis"content="%description%" /> <metaname= "ključne riječi" content= "%keywords%" /> <naslov >%title%naslov >Sada, prilikom generisanja stranica, sistem će uzeti meta oznake i naslove koji su specificirani za svaku stranicu pojedinačno i zamijeniti ih umjesto odgovarajućih makroa. Imena makroa se lako pamte.
Isto ćemo uraditi i sa naslovom teksta. Bilo je ovako:
<h1 > Glavna stranicah1 >I postaće tako. Naslov teksta prikazuje makro %header%:
<h1 >%header%h1 >Tekst tijela stranice se također mijenja:
<p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p > <p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p > <p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p > <p > Tekst o meni: Tekst o meni: Tekst o meni: Tekst o meni:p >Postoji makro za prikaz osnovnog teksta stranice. %content% :
%content%Na početak datoteke između oznaka
i ubaci makro:Ova linija omogućava brzo uređivanje i druge korisne funkcije. Pomoću njega možete kliknuti Shift +D, brzo idite na uređivanje trenutne stranice stranice ili bilo kojeg njenog fragmenta.
Rezultat bi trebao biti sljedeći:
<html > <glava > <metaname= "opis"content="%description%" /> <metaname= "ključne riječi" content= "%keywords%" /> <naslov >%title%naslov > <link href= style.css rel= "style sheet" type= "text/css" /> %system includeQuickEditJs()%glava > <tijelo >// početak menija<table border= "1" > <tr > <td ><href= "/" > <b> Domb>a >td > tr > <tr > <td ><href= "/o/"> O kompanijia >td > tr > <tr > <td ><href= "/projekti/"> Projektia >td > tr > <tr > <td ><href= "/kontakti/"> Kontaktia >td > tr > stol >// kraj menija<h1 >%header%h1 >%content%tijelo > html >Dakle, spremamo datoteku šablona i gledamo rezultat. Sada je stranica skoro potpuno dinamična, osim menija. Potrebno je "oživjeti" meni stranice. Pogledajmo kako je postavljen meni:
// početak menija<table border= "1" > <tr > <td ><href= "/" > <b> Domb>a >td > tr > <tr > <td ><href= "/o/"> O menia >td > tr > <tr > <td ><href= "/ja_i_ja/"> Ja i svjetska dominacijaa >td > tr > <tr > <td ><href= "/kontakti/"> Kontaktia >td > tr > stol >// kraj menijaMeni se sastoji od stavki. Sam jelovnik je nekako osmišljen, a i artikli imaju dizajn. Na primjer, cijeli meni može imati okvir ili pozadinu, trenutna stavka menija može biti podebljana itd. Takođe u jednom meniju mogu biti različiti nivoi.
Odaberite okvir menija:
// početak menija<table border= "1" > stol >// kraj menijaStavka menija izgleda ovako:
<tr > <td ><href= "/kontakti/"> Kontaktia >td > tr >Trenutna stavka menija je drugačije formatirana:
<tr > <td ><href= "/" > <b> Domb>a >td > tr >Originalni predložak menija nalazi se u datoteci /tpls/content/menu/default.tpl i izgleda ovako:
%text%