Bună ziua tuturor. Aș dori să vă prezint o altă bicicletă scrisă în PHP folosind Obiect Document Model. Cum este diferit de alți reprezentanți cu trei roți ai aceleiași specii? De fapt, nu există atât de multe diferențe, combină tot ce este mai bun din multe. De exemplu:
1. Separarea completă a html și php.
2. Fără etichete suplimentare în șabloane precum
3. Posibilitatea de a încorpora conținutul altor fișiere șablon în aspect, atât din php, cât și folosind o etichetă specială în aspect.
4. Abilitatea de a crea orice etichetă html din mers.
5. Abilitatea de a economisi în fișier html tot ceea ce a fost generat și adunat.
6. Verificarea existentei fisierului html al paginii solicitate inainte de generarea template-ului.
Pentru a clarifica imediat tuturor cât de convenabil și ușor este de utilizat, voi spune și arăta cum l-am folosit pentru a crea unul dintre proiectele mele (bănuiesc că îmi voi rescrie toate proiectele pentru el).
Primul lucru pe care îl fac de obicei este să obțin toate informațiile din baza de date despre pagină ( Cuvinte cheie, descrierea paginii, numele șablonului și adresele fișierelor css și js). Toate acestea le stochez în matricea $ head. Apoi primesc conținutul din baza de date și îl salvez în matricea de pagini $. Și încep să lucrez cu clasa.
Deci, mai întâi apelez constructorul clasei și îi trec toți parametrii necesari:
$ tpl = șablon nou; $ tpl -> ext = TPL_EXTENSION; # extensia fișierelor din directorul șablonului $ tpl -> htm = CACHE_EXTENSION; # extensie pentru paginile deja generate $ tpl -> skin_dir = DIR_TEMPLATES; # directorul care conține toate șabloanele de site (de exemplu șabloane) $ tpl -> js_dir = DIR_JS; # directorul în care trebuie să căutați fișiere JS $ tpl -> css_dir = DIR_CSS; # directorul în care se află CSS-ul $ tpl -> img_dir = DIR_IMG; # directorul în care imaginile $ tpl -> skin = $ _SESSION ["skin"]; # numele șablonului pe care vreau să-l folosesc $ tpl -> cache = DIR_CACHE; # unde să salvezi html-ul terminat $ tpl -> log = FILE_T_LOGS; # unde să scrieți jurnalele $ tpl -> tag_start = SYMBOL_START_TAG; # Caracterul pe care variabilele din șablon încep cu $ tpl -> tag_end = SYMBOL_END_TAG; # Caracterul care termină variabilele în șablonul $ tpl -> dir_delimeter = DIRECTORY_SEPARATOR; $ tpl -> spatiu = SYMBOL_SPACE; # caracter care înlocuiește un spațiu.
Fuf, se pare că toate variabilele au fost trecute, să mergem mai departe.
Pentru a nu forța clasa să facă lucrări inutile, mai întâi verificăm dacă avem deja un fișier HTML gata făcut al paginii solicitate.
if ($ tpl -> TestPageStatus () === TRUE) (necesită $ tpl -> cacheFileName;) else ($ tpl -> pagină ("index"); # treceți numele fișierului șablon, apropo, dvs. pot trece mai multe dintre ele, separate prin virgule $ tpl -> assign ("HEAD", $ head); $ tpl -> assign ("CONTENT", $ pagina); $ tpl -> build (); # da comanda la construiți șablonul $ tpl -> ShowPage (); # output.)
Iată toate metodele pe care trebuie să le utilizați pentru a afișa pagina.
Acum să aruncăm o privire la câteva metode utile din această clasă. Să spunem că am trecut deja tot ce avem nevoie clasei, dar nu i-am dat încă o comandă la ieșire, pentru că ne-am amintit brusc că trebuie să creăm mai multe etichete HTML în șablon. Acest lucru este, de asemenea, foarte ușor de făcut. Mai întâi, trebuie să găsim blocul în care dorim să adăugăm ceva. Îl poți găsi în 2 moduri:
$ tpl -> findById ("findMe"); $ tpl -> findByTagName ("div");
Metoda findById presupune logic că toate ID-urile etichetelor din șablon sunt unice. Și metoda findByTagName va returna prima care se potrivește.
Trebuie să trecem rezultatul pe care l-am obținut căutând la metoda $ tpl -> createChild () pentru a putea crea etichete copil în elementul găsit. Metoda createChild, de altfel, după crearea unui element nou, ni-l returnează, astfel încât să putem folosi elementul nou creat în altă parte.
Cercetând și experimentând, am găsit 3 moduri de a crea etichete într-un șablon, așa că vă voi arăta 3 exemple deodată. Exemplul 1:
Trebuie să creăm
interior$ parent = $ tpl -> findById ("părinte"); $ tpl -> createChild ($ parent, "div", "id = child, class = test");
Primim:
Exemplul 2:
Trebuie să creăm
$ parent = $ tpl -> findById ("părinte"); $ tpl -> createChild ($ parent, "div", "id = child, class = test", "Some text");
Primim:
Exemplul 3:
Trebuie să creăm
$ parent = $ tpl -> findByTagName ("span"); # (1) $ tpl -> createChild ($ părinte, "div", "Element nou"); # (2)
(1) Căutarea unui părinte nu după id, ci după etichetă va găsi primul care se potrivește
(2) Dacă nu avem nevoie de atribute, ci doar de valoarea noului element, atunci acestea pot fi omise.
Primim:
Și după aceste manipulări, deja apelez ShowPage. Și aici ajungem fără probleme la încă 2 puncte interesante.
Imaginați-vă o situație în care avem un șablon, să presupunem că este un șablon list.tpl cu o listă de, să zicem, telefoane mobile:
(CONTINUT.Brand)
(CONTINUT.Model)
(CONTINUT.Informații)Dacă am transmis informații doar printr-un singur telefon, atunci variabilele vor fi pur și simplu înlocuite cu valorile lor, iar dacă am transmis informații prin mai multe telefoane simultan, atunci clasa va copia această secțiune de câte ori au ajuns variantele de valori. aceasta. Și va face acest lucru el însuși, spre deosebire, de exemplu, de clasa xTemplate, care avea atribuirea și analizarea pentru fiecare valoare.
Adevărat, există un moment nu foarte convenabil, dacă după acest bloc există și alții, de exemplu:
(CONTINUT.Brand)
(CONTINUT.Model)
(CONTINUT.Informații)Atunci, într-o astfel de situație, va trebui să folosim un mic truc prin împachetarea telefonului mobil
(CONTINUT.Brand)
(CONTINUT.Model)
(CONTINUT.Informații)În acest caz, toate telefoanele mobile vor apărea unul după altul, în interior , iar „Alt bloc” va rămâne mai jos.
Și, dacă nu am uitat nimic, atunci ultimul moment este adăugarea conținutului altor șabloane la șablonul curent.
Fac din nou apel la imaginația ta.
Imaginați-vă că designerul de aspect dorește ca conținutul fișierului page.html să fie adăugat la blocul de fișiere list.html, pentru aceasta el adaugă în locul potrivit în fișierul list.html
Numărul de astfel de inserturi nu este limitat și locația lor nu este absolut critică, așa că le puteți introduce după cum doriți și în orice cantitate.
Probabil asta e tot, dacă îmi amintesc ceva, te voi informa suplimentar. Vă mulțumesc că ați citit până la capăt.
Etichete: php, clasă, șablon, motor de șabloane, parser
După creație info-dosar, in principiu, tema a fost deja definita. Aceasta înseamnă că puteți accesa secțiunea pentru gestionarea temelor http://mysite.ru/admin/build/themesși includeți tema acolo. Desigur, după ce îl porniți, nu veți vedea niciun design - pagina va dobândi stilul „negru pe alb” - text negru pe fundal alb.
Cu toate acestea, vreau să remarc că, în ciuda faptului că în tema noastră nu există fișiere cu excepția mytheme.info nu minte, site-ul va funcționa la fel ca înainte - afișați tot conținutul, adăugați blocuri în regiuni ( http://mysite.ru/admin/build/block) etc. Acest lucru se datorează faptului că nucleul Drupal include modulele necesare, care, chiar și în absența oricăror fișiere din tema dvs. (cu excepția fișierului info), vă permit să continuați să lucrați cu Drupal.
În principiu, toată crearea de șabloane este redusă la fișiere șablon suprapuse (au extensia .tpl.php) module standard ale noastre CMS.
Cel mai important fișier tpl (tpl este prescurtarea de la șablon, model) este page.tpl.php... El este responsabil pentru construirea fiecărei pagini a site-ului. Să vedem în ce constă fișierul șablon:
- cod html
- cod php
- cod javascript(nu este necesar)
Drupal transferă datele site-ului în fiecare fișier șablon sub formă de variabile standard. Există 2 tipuri de variabile pentru fiecare fișier șablon:
- variabile care sunt transmise numai acestui fișier
- variabile care sunt transmise tuturor fișierelor
Iată o listă cu toate variabilele pentru page.tpl.php:
Variabile comune (pentru toate fișierele):
- $ cale_bază- calea de bază unde a fost instalat drupal
- $ css- o serie de fișiere CSS conectate la fișierul șablon curent
- directorul $- calea către folderul în care este instalată tema
- $ is_front- returnează TRUE dacă sunteți pe pagina principală
- $ logged_in- returnează TRUE dacă sunteți autentificat
- $ is_admin- returnează TRUE dacă aveți acces la panoul de administrare
Metadatele paginii
- $ limba- (un obiect) Limba actuală care este afișat pe site
- $ limba-> limba- contine reprezentarea sa textuala
- $ limba-> dir- contine directia limbajului. Va fi fie „ltr” (de la stânga la dreapta), fie „rtl” (de la dreapta la stânga)
- $ head_title- versiunea modificată a titlului paginii, pentru utilizare între etichete
- $ cap- introdus între etichete ... Conține metaetichete, cuvinte cheie etc.
- $ stiluri- servește la descărcarea tuturor css-fișiere către pagina curentă
- $ scripturi- servește la descărcarea tuturor javascript "s la pagina curentă
- $ body_classes- un set de clase css pentru etichetă ... Conține informații despre locația curentă a coloanelor de pe site, numărul acestora, adresa URL curentă „e etc.
Informații despre site
- $ prima pagină- adresa paginii principale a site-ului. Mai bine să folosiți această variabilă pentru a vă referi pagina principala de cand include limba și prefixul domeniului
- sigla $- calea către sigla site-ului, dacă este inclusă pe site
- $ site_name- Numele site-ului. Poate fi gol dacă îl dezactivați în funcțiile din fișierul de informații. Configurabil la mysite.ru/admin/settings/site-information
- $ site_slogan- sloganul site-ului. Poate fi gol dacă îl dezactivați în funcțiile din fișierul de informații. Configurabil la mysite.ru/admin/settings/site-information
- $ misiune- misiunea site-ului. Poate fi gol dacă îl dezactivați în funcțiile din fișierul de informații. Configurabil la mysite.ru/admin/settings/site-information
Navigare
- $ search_box- conține cod html care afișează șirul de căutare. Poate fi gol dacă îl dezactivați în fișierul de informații
- $ primary_links
- $ linkuri_secundare- o matrice care contine link-uri de navigare pentru site, daca acestea sunt permise in caracteristicile fisierului informativ
Conținutul implicit al paginii
- $ rămas- regiune. Conține codul html pentru coloana din stânga. Dacă specificați orice regiune în fișierul de informații, aceasta dispare
- $ pesmet - "firimituri de pâine" pentru pagina curenta
- titlu $- titlul paginii
- $ ajutor- sfaturi dinamice, cele mai multe afișate în panoul de administrare
- $ mesaje- afișează mesaje despre erori și avertismente pe site
- file $- linkuri (file) care conectează pagina curentă cu subpaginile acesteia (de exemplu, pentru un articol - cu pagina de editare a acesteia)
- $ continut- continutul paginii curente
- $ corect- regiune. Conține codul html pentru coloana din dreapta. Dacă specificați orice regiune în fișierul de informații, aceasta dispare
Zona inferioară / date de acoperire
- $ feed_icon- linie cu toate pictogramele părere pentru pagina curentă
- $ footer_message- mesaj din partea de jos a paginii. Configurabil la mysite.ru/admin/settings/site-information
- $ subsol- regiune. Conține codul html pentru partea de jos a paginii. Dacă specificați orice regiune în fișierul de informații, aceasta dispare
- $ inchidere- etichetă de închidere pentru toate modulele care au schimbat pagina. Această variabilă trebuie să fie afișată după tot conținutul dinamic. Cel mai bine înainte de a închide eticheta BODY
Toate sunt enumerate aici variabile standard... Dar puteți adăuga variabilele dvs. aici fie ca regiuni prin info-file, sau în orice alt rol prin fișier template.php(despre el puțin mai târziu).
Acum vă voi arăta în ce cod ar trebui să fie page.tpl.phpși în ce cod este apoi interpretat de browsere. Iată o bucată de cod de la page.tpl.php:
Prima linie verifică dacă pagina curentă are un titlu. Dacă nu este acolo, atunci depanatorul va sări peste acest cod și nu îl va introduce. Dacă titlul există, atunci eticheta va fi adăugată la codul html al paginii
, după aceasta se va tipări titlul paginii, iar toate acestea vor fi închise cu eticheta
... Dacă te uiți la codul acestei pagini într-un browser, atunci ar arăta astfel:
Lecția 4. Fișierele necesare pentru a crea un șablon. Pagina.tpl.php
Aproape toate variabilele site-ului sunt împachetate în acest fel. Acest lucru se face astfel încât să putem stila conținutul fără a ști dinainte despre ce va fi acesta.
Așa arată fișier standard page.tpl.php care vine cu Drupal. Schimbați numele claselor, rearanjați variabilele - și vedeți ce se întâmplă. Acest lucru este necesar pentru a „simți” cum funcționează și ce este afișat ca rezultat.
„- // 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 = "limba?> " lang = "limba?> " dir = "dir?> ">
„title =" (! LANG:"rel =" acasă ">print $ site_name; ?>
Separarea logicii de primire a datelor de logica afișarii acestora este o parte foarte importantă a dezvoltării web.
Orice programator care s-a ridicat puțin peste nivelul „Bună ziua, lume” începe să simtă nevoia unei astfel de separare. Dar nu toată lumea ajunge la concluziile și deciziile corecte.
Prin urmare, iată cele mai importante reguli:
1. Codul de primire și codul de afișare a datelor trebuie separate.
2. Orice ieșire ar trebui să înceapă numai după ce toate datele sunt gata pentru ea.
3. În consecință, orice script ar trebui să se ocupe doar de prelucrarea datelor. După aceea, el poate fie să trimită un fel de antet HTTP, fie să apeleze șablonul, transmițându-i datele pregătite, sau ambele împreună.
4. Ce motor de șablon să folosești este al zecelea lucru. Cel mai simplu și mai accesibil este PHP în sine, așa că vor fi date exemple despre el.
Iluzii
Probabil că nu există niciun subiect în programarea web care să fie atât de evident pe atât de neînțeles ca șabloanele. Toată lumea, mai devreme sau mai târziu, ajunge la concluzia că este necesar să se folosească șabloane. Dar vine, din anumite motive, prin unele iluzii și fantezii cele mai sălbatice.
Cea mai simplă și mai evidentă concepție greșită este că începătorii numesc un fișier „design”, care este un html obișnuit pentru toate paginile unui site, ca șablon. Și pe asta se calmează. Informații dinamice, nimic ezitând, afișând vechiul ecou bun :-)
De fapt, motorul de șablon se preocupă în principal de afișarea conținutului în schimbare al paginilor site-ului. Iar concluzia „proiectării” este o sarcină secundară.
Există două fantezii principale:
1. „Designerul” are nevoie de șabloane pentru a le putea edita fără a fi nevoit să înțeleagă PHP.
2. Prin urmare, șabloanele servesc la separarea PHP de HTML.
Să încercăm să ne gândim la prima afirmație. Ce este un designer? Aceasta este o persoană care lucrează în Photoshop. Cel mai adesea nu cunoaște HTML deloc. Și fie un designer special de layout, fie - cel mai adesea... programatorul însuși - lucrează la șablon! Amuzant, nu-i așa?
Acum corolarul, despre separarea PHP de HTML. Amenda. Avem în fața noastră scopul sfânt al despărțirii. Prin urmare, venim cu Smarty și scriem:
(foreach key = element cid = con from = $ contacte)
($ con.name) - ($ con.nick)
(/ pentru fiecare)
Chiar mai amuzant.
„Designerul” pentru care totul a început leșină de fericire.
Teorie
Se pare că motivele noastre pentru care am decis să folosim șabloane nu merită un ban. Și ce acum - nu sunt necesare, se pare, șabloane în general? Necesar. Dar mai întâi trebuie să răspunzi la întrebarea - "de ce?" Pentru ce nevoie de șabloane. Și verifică răspunsul cu practică. Am pus oamenilor această întrebare de multe ori. Dar aproape nimeni nu poate răspunde. De ce are nevoie de șabloane. Se pare că oamenii fac ceva fără să știe de ce.
Acesta este cel mai amuzant lucru.
În timpul mandatului meu de programator web, mi-am formulat trei motive pentru care personal am nevoie de șabloane. De fapt, sunt două. Și până la urmă ajungem la un singur lucru:
Un cod - mai multe vizualizări.
Se întâmplă adesea ca în loc de o informație, să fie nevoie să arăți alta. De exemplu, codul pentru lucrul cu baza de date primește un mesaj de eroare în loc de textul știrilor. În acest caz, în loc de o pagină de știri, trebuie să afișați una complet diferită - cu scuze și cu o cerere de a reveni mai târziu. Este foarte ușor să faci asta cu șabloane.
Adesea, aceeași informație trebuie afișată în mai multe forme. De exemplu, o pagină obișnuită și o pagină tipărită. Informațiile sunt aceleași, codul de recuperare este același și codul de ieșire este diferit. În fața unei astfel de situații, vă puteți împărți foarte rapid codul în două părți, dintre care una este responsabilă pentru ieșire, iar a doua nu este responsabilă. Un alt exemplu: să presupunem că am vrut să scoatem informații nu direct în HTML, ci printr-o solicitare AJAX, în format JSON. Dacă am folosit un motor de șablon, atunci schimbăm exact o linie din codul nostru - apelând motorul de șablon la apelarea json_encode (). Și dacă rezultatul nostru a fost amestecat cu codul pentru primirea datelor, atunci tot codul ar trebui rescris!
Situația este oarecum similară: să presupunem că scriptul nostru este pe două site-uri. Plus o copie la noi. Și așa am găsit un bug mare acasă. Închide-l. Acum trebuie să actualizăm codul de pe site-uri. Și iată - momentul adevărului: dacă șabloanele au fost folosite corect, atunci pur și simplu încărcăm codul pe ambele site-uri și totul continuă să funcționeze, de parcă nimic nu s-ar fi întâmplat! Această situație, în opinia mea, este un test ideal al abordării alese pentru șablonare.
Un alt punct important pe care mulți oameni îl dor (în raționamentul lor teoretic, în timp ce îl întâlnesc constant în practică!) - ordinea de execuție a scriptului nu se potrivește întotdeauna cu ordinea de ieșire din șablon... Exemplu de manual - afișarea titlului unui articol într-o etichetă
De asemenea, trebuie amintit că, pe lângă textul PHP, scripturile afișează și anteturi HTTP. Care trebuie afișat înaintea oricărui text, sau chiar în loc de text în general (dacă, de exemplu, dorim să redirecționăm utilizatorul către o altă pagină). Dacă implementăm mai întâi logica aplicației, fără a afișa nimic în același timp, atunci emiterea antetului HTTP necesar nu ne va pune nicio problemă.
Este posibil să aveți propriile motive pentru a utiliza șabloane. Dar cu o singură condiție - aceste motive ar trebui să fie cauzate de o necesitate reală, vitală, și nu de „considerații mai înalte” și preocupare pentru niște oameni necunoscuți.
Practică
Acum să trecem de la teorie la practică.
În cel mai simplu caz, în afișarea oricărei pagini, vom avea întotdeauna două șabloane: un șablon general de site și un șablon de conținut pentru o anumită pagină.
Să presupunem că vrem să facem o pagină cu link-uri către site-urile prietenilor.
În acest caz, codul simplificat va arăta astfel:
Fișierul links.php în sine. Iesi NIMIC. Pregătește doar datele și apoi apelează șablonul.
// activează setările.
includ „settings.php”;
// obțineți date din baza de date, definiți variabile
$ pagetitle = "(! LANG: Linkuri"
;!}
$ DATE = $ db -> getAll ("SELECT * FROM links");
// setați șablonul de pagină și apelați șablonul general de site
$ tpl = "tpl_links.php";
includ „tpl_main.php”;
Șablon general (tpl_main.php):
include $tpl ?>
La locul potrivit, șablonul paginii noastre (tpl_links.php) este inclus în el:
=$pagetitle?>
- "țintă =" _blank ">=$row [ "name" ] ?>
foreach($DATA as $row ): ?>
endforeach ?>
Cel mai simplu mod este de a crea șabloane bazate pe pagini statice deja așezate în HTML. Să luăm în considerare crearea și conectarea unui șablon folosind un exemplu. Să presupunem că aveți deja un fișier HTML cu următorul conținut:
<html> <cap> <meta nume = "Descriere"continut = /> <meta nume = "Cuvinte cheie"continut = /> <titlu>titlu> <link href = „style.css” rel = "foaia de stil" tip = „text/css” /> cap> <corp>// meniul de pornire<bordura tabelului = "1" > <tr> <td><a href = "/" > <b> Acasăb>a>td> tr> <tr> <td><a href = "/ despre /"> Despre minea>td> tr> <tr> <td><a href = "/ eu_și_eu /"> Eu și dominația lumiia>td> tr> <tr> <td><a href = "/ contacte /"> Contactea>td> tr> masa>// sfârşitul meniului<h1> pagina principalah1> <p> p> <p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p> <p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p> <p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p> corp> html>Pentru a adăuga un șablon la CMS, trebuie să creați un fișier în directorul tpls / conținut, de exemplu, test.tpl, și să introduceți codul HTML acolo. Fișierul CSS ar trebui să fie plasat în folderul css / cms și denumit style.css. Este de dorit să puneți imaginile în folderul imagini. Nu uitați să schimbați căile pentru toate imaginile și fișierele CSS.
cometariu
Literele rusești nu pot fi folosite în numele fișierului șablon!
Pentru ca sistemul să „vadă” noul șablon și să înceapă să-l folosească pentru a afișa pagini, șablonul trebuie adăugat la sistem. Pentru a face acest lucru, accesați setările modulului „Structură”, fila „Șabloane” ( http://yourdomain.ru/admin/content/config/ ). Veți vedea o listă de șabloane deja instalate în fiecare domeniu care există în versiunea lingvistică selectată.
Pentru a conecta un nou fișier șablon, completați linia liberă de jos a câmpurilor „ Nume șablon„(Dă-i un nume semnificativ, de exemplu” Modelul meu de testare„) Și „Nume fișier” (în cazul nostru, test.tpl) și faceți clic pe butonul „Salvare”.
Dacă doriți ca acest șablon să fie utilizat ca șablon implicit, bifați caseta de selectare „Principal” de lângă el. Acest șablon va fi acum selectat implicit în meniul derulant de selecție a șablonului. De asemenea, va fi folosit pentru a afișa pagini de sistem care utilizează șablonul implicit (Înregistrare, Recuperare parolă, Harta site-ului).
Șabloanele vor fi vizibile în lista derulantă atunci când editați fiecare pagină:
Astfel, pe un singur site, puteți folosi mai multe șabloane în același timp, alegând șablonul potrivit atât pentru o singură pagină, cât și pentru un grup de pagini.
Încercați să creați o pagină nouă (asigurați-vă că este selectat un șablon nou în opțiunea Design Template) și vedeți ce se întâmplă pe site.
Șablonul dvs. HTML ar trebui să apară pe site. Dar acum este static. Acum trebuie să-l faci dinamic.
În primul rând, trebuie să determinați ce părți ale codului HTML se vor schimba. În cazul nostru, se vor schimba următoarele:
titlul ferestrei
metaetichete cuvinte cheie și descriere;
titlul textului
;
textul propriu-zis;
meniul site-ului.
Aceasta înseamnă că trebuie să lucrăm puțin cu șablonul HTML și să punem macrocomenzile corespunzătoare în locul secțiunilor care se schimbă.
De exemplu, la începutul fișierului HTML, există metaetichete și un titlu:
<meta nume = "Descriere"continut = „descrierea site-ului lui Vasily Pupkin” /> <meta nume = "Cuvinte cheie"continut = „Siteul oficial Vasya Vasily Pupkin” /> <titlu> Site-ul lui Vasya Pupkin: Pagina principalătitlu>Le înlocuim cu macrocomenzile corespunzătoare (lista de macrocomenzi este dată în anexă):
<meta nume = "Descriere"continut = "% descriere%" /> <meta nume = "Cuvinte cheie" continut = "% Cuvinte cheie%" /> <titlu>% titlu%titlu>Acum, atunci când generează pagini, sistemul va prelua meta-etichetele și titlul, prescrise pentru fiecare pagină în parte, și le va înlocui în locul macrocomenzilor corespunzătoare. Este foarte ușor să vă amintiți numele macrocomenzilor.
Să facem același lucru cu titlul textului. A fost cam asa:
<h1> pagina principalah1>Și așa va deveni. Antetul textului este afișat de macrocomanda% header%:
<h1>% antet%h1>Se modifică și textul principal al paginii:
<p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p> <p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p> <p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p> <p> Text despre mine: Text despre mine: Text despre mine: Text despre mine:p>Există o macrocomandă pentru afișarea textului principal al paginii % continut% :
% continut%Până la începutul fișierului între etichete
și introduceți macro-ul:Această linie permite editarea rapidă și alte funcții utile. Cu el puteți apăsând Schimb +D, treceți rapid la editarea paginii curente a site-ului sau a oricărui fragment al acestuia.
Ca urmare, ar trebui să obțineți următoarele:
<html> <cap> <meta nume = "Descriere"continut = "% descriere%" /> <meta nume = "Cuvinte cheie" continut = "% Cuvinte cheie%" /> <titlu>% titlu%titlu> <link href = „style.css” rel = "foaia de stil" tip = „text/css” /> % sistem includeQuickEditJs ()%cap> <corp>// meniul de pornire<bordura tabelului = "1" > <tr> <td><a href = "/" > <b> Acasăb>a>td> tr> <tr> <td><a href = "/ despre /"> Despre companiea>td> tr> <tr> <td><a href = "/ proiecte /"> Proiectea>td> tr> <tr> <td><a href = "/ contacte /"> Contactea>td> tr> masa>// sfârşitul meniului<h1>% antet%h1>% continut%corp> html>Deci, salvăm fișierul șablon și ne uităm la rezultat. Pagina este acum aproape complet dinamică, cu excepția meniului. Este necesar să „reînvie” meniul site-ului. Să vedem cum este aranjat meniul:
// meniul de pornire<bordura tabelului = "1" > <tr> <td><a href = "/" > <b> Acasăb>a>td> tr> <tr> <td><a href = "/ despre /"> Despre minea>td> tr> <tr> <td><a href = "/ eu_și_eu /"> Eu și dominația lumiia>td> tr> <tr> <td><a href = "/ contacte /"> Contactea>td> tr> masa>// sfârşitul meniuluiMeniul este format din articole. Meniul în sine este oarecum decorat, iar articolele au și un design. De exemplu, întregul meniu poate avea un fel de cadru sau fundal, elementul curent de meniu poate fi evidențiat cu aldine etc. De asemenea, pot exista niveluri diferite în același meniu.
Selectați cadrul meniului:
// meniul de pornire<bordura tabelului = "1" > masa>// sfârşitul meniuluiElementul de meniu este conceput astfel:
<tr> <td><a href = "/ contacte /"> Contactea>td> tr>Elementul curent de meniu este stilat diferit:
<tr> <td><a href = "/" > <b> Acasăb>a>td> tr>Șablonul de meniu original se află în fișierul /tpls/content/menu/default.tpl și arată astfel:
% text%