Lucrul cu șabloanele, folosind html-template cu cgi-scripts

Una dintre sarcinile frecvente cu care se confruntă un programator Web este de a separa logica de a obține date din formatul de reprezentare a datelor. Pentru a rezolva această problemă, se folosesc adesea șabloane ale documentelor html, care sunt umplute cu date când programele sunt difuzate. Acest lucru vă permite să faceți aspectul paginilor către o altă persoană sau să modificați aspectul paginilor fără a schimba programul în sine.







CPAN oferă programatorului posibilitatea de a alege diferite modalități de lucru cu șabloanele. Printre acestea: HTML :: Template, Text :: Template, Template toolkit. De regulă, metoda de lucru cu toate aceste module este aceeași. Programatorul creează un obiect care indică șablonul dorit, apoi este creat un set de date pentru a umple șablonul, iar șablonul este completat și rezultatul este returnat ca pagină HTML terminată. Să examinăm mai atent modulul HTML :: Template.

HTML :: Template permite programatorului să controleze lucrul cu șabloanele. De exemplu, dacă utilizați acest modul în combinație cu mod_perl, puteți utiliza cache-ul șabloanelor parsate și utilizați rezultatele în diferite scripturi. Pe lângă cache, programatorul poate specifica filtre care vor procesa textul generat. Toți parametrii de șablon sunt setați la crearea unui obiect care descrie șablonul.

Creați un obiect

Iată un exemplu de creare a unui obiect dintr-un șablon aflat în fișierul template.tmpl, în timp ce se specifică faptul că numele șablonului vor fi minuscule:

$ template = HTML :: Template-> new (nume fișier => 'template.tmpl', case_sensitive => 1);


În cazul în care sistemul este setat variabila de mediu $ HTML_TEMPLATE_ROOT, iar șablonul este setat numele de fișier relativ, atunci numele va fi adăugată la valoarea de $ HTML_TEMPLATE_ROOT.

Obținerea de rezultate


Pentru a obține un șablon umplut, pur și simplu apelați funcția de ieșire pentru obiectul dorit. Textul generat este returnat. Starea obiectului șablon nu se modifică.

Întrucât foarte des rezultatul lucrării este scris într-un fișier, pentru a reduce sarcina, puteți utiliza parametrul print_to pentru a trece funcția de ieșire a descriptorului de fișier la care vor fi afișate rezultatele. De exemplu, astfel:







$ template-> output (print_to => * STDOUT);

Introducerea de variabile


Pentru a insera datele într-un șablon, trebuie să le completați cu funcția param. Funcția param este trecută printr-un hash de date sub forma unei valori = =>. Pentru structurile complexe de date, de exemplu, pentru bucle imbricate, valoarea poate fi o referință la liste și alte hashes. Iată un exemplu de utilizare simplă a modulului:

se HTML :: Template;
# deschideți fișierul șablonului
$ template = HTML :: Template-> new (nume fișier => 'test.tmpl');
# completați parametrii șablonului
$ template-> param (HOME => $ ENV, PATH => $ ENV);
# trimiteți antetul Content-Type
tipăriți "Content-Type: text / html \ n \ n";
# emite rezultatul final
print $ template-> output;


Pentru a utiliza o variabilă denumită VARNAME într-un șablon, . Valoarea plasată în hash utilizând funcția param este plasată în locul acestei etichete. Procedând astfel, obținem un document care nu respectă pe deplin standardul HTML. Dacă sunteți preocupat de sintaxa corectă a documentului dvs., în locul acestei etichete puteți utiliza următorul formular: . Funcționează în același mod ca și cel precedent, dar nu încalcă corectitudinea documentului HTML. Ambele forme pot fi utilizate în interiorul altor etichete, de exemplu:

„>.

Procesarea variabilelor de ieșire poate fi controlată de parametrul tag-ul numit ESCAPE. Valorile valide sunt HTML și URL, iar caracterele care nu sunt rezolvate în acest context sunt convertite.

Operatorii condiționați


O altă construcție frecvent utilizată este starea. Are forma Datele 1Datele 2. În acest caz, datele vor apărea în rezultatul 1 numai în cazul în care variabila numita IMYA_UPRAVLYAYUSCHEGO_PARAMETRA va avea o valoare adevărată, în caz contrar rezultatul va fi 2. Modulul de date permite utilizarea a numai condiții de ramură, fără a utiliza . Variabila este populată ca de obicei.

Opus etichetei de acțiune este o etichetă . Are sintaxa date și introduce datele doar dacă variabila _PARAGING_PARAMETER_NAME are o valoare falsă sau nu este definită deloc.

Funcția param poate fi de asemenea folosită pentru a obține valoarea parametrului specificat. Pentru a face acest lucru, pur și simplu apelați funcția cu numele parametrului dorit.

Operatorul ciclului


O etichetă importantă este o etichetă care indică un ciclu. Are următoarea sintaxă: Duplicată parte. Variabila LOOP_NAME trebuie să fie o referință la lista de date. În această listă, puteți stoca atât valorile, cât și linkurile la alte hashuri de date, ceea ce vă permite să construiți construcții imbricate, ca în exemplul următor.

Dacă scriem în șablonul nostru, de exemplu, o astfel de construcție








Numele tau: poziţia:







Articole similare

Trimiteți-le prietenilor: