"Block is Object" este un template enjay, care combină sintaxa simplă, flexibilitatea și un număr mare de posibilități. Enzhain oferă o separare ideală a designului de codul sursă, limba nu conține constructe de limbaj de programare. Enzhain promovează programarea modulară, deoarece imprimarea fiecărui bloc este stabilită de o clasă separată. Mai jos este lista completă a caracteristicilor:
Următoarele sunt exemple. Rezultatul șablonului este generat în timp real pe site.
Cum se imprimă un șablon
Șablonul are forma:
Bună ziua, compilați lumea!
Bună ziua, lumea interpretată!
Șablonul compilat poate fi văzut aici.
Cum se introduce o valoare variabilă într-un șablon
Șablonul are forma:
Prețurile sunt reduse cu 20%!
Șablonul compilat poate fi văzut aici.
Cum se repetă un bloc html într-o buclă
Șablonul are forma:
Șablonul compilat poate fi văzut aici.
Cum să ascundeți textul
Șablonul are forma:
Șablonul compilat poate fi văzut aici.
Selectarea opțiunilor de proiectare
Dacă imprimați o linie de baze de date, trebuie să modificați designul acesteia, în funcție de tipul de înregistrare.
Șablonul are forma:
Ivan, utilizatorul, 34 de posturi.
Vasily, moderator, 125 posturi.
Igor, utilizatorul, 54 de posturi.
Dmitry, utilizatorul, 4 posturi.
Șablonul compilat poate fi văzut aici.
Biblioteci de șabloane
Puteți crea biblioteci de șabloane care conțin fragmente de cod html. Aceste fragmente pot fi apoi inserate în alte șabloane. Introducerea ar trebui să se facă programabil, adică fragmentul html trebuie transmis șablonului ca una dintre variabile. Nu există nicio mențiune specială inclusă în șablon.
Șablonul bibliotecii trebuie să aibă extensia .lib.bo.
Un alt șablon care folosește biblioteca:
Clasificarea variabilelor
Dacă numărul de variabile este mare, ele pot fi organizate într-un arbore, folosind arrays cu chei de șir. Nesting de tablouri este arbitrară. Șablonul are un mecanism încorporat pentru accesarea copacului. Numele variabilei este calea din acest arbore. Dosarele individuale sunt separate prin puncte.
Șablonul are forma:
Șablonul compilat poate fi văzut aici.
Se potrivesc numele variabilelor în blocurile imbricate
Să presupunem că există o situație în care două blocuri imbricate unul în altul introduc variabile cu aceleași nume. În acest caz, variabila unității interioare înlocuiește variabila blocului extern. Dacă doriți să accesați variabila blocului extern, trebuie să atribuiți un spațiu de nume separat. Alocarea spațiului de nume are loc complet în șablon și nu necesită finalizarea codului programului, astfel încât programatorul nu se poate îngrijora de potrivirea numelor de variabile.
Șablonul are forma:
Șablonul compilat poate fi văzut aici.
Utilizarea compilatorului de șabloane
Dacă șablonul este simplu, adică conține numai variabile, funcționează astfel. Blocul din șablon este convertit de către compilator la un obiect care are metoda printb. Pentru a imprima un bloc, numim metoda printb. trecând o matrice cu valorile variabilelor care sunt disponibile în bloc. Un exemplu.
Ce se întâmplă dacă există un alt bloc în interiorul blocului. Un obiect special numit Renderer este adăugat la matricea variabilelor. Când se tipărește un bloc (unul care se află într-un alt bloc), Renderer -a apelează metoda prin. care este trecut la bloc ca obiect cu metoda printb. Un exemplu.
Există mai mulți Renderers gata făcuți care efectuează operații tipice: extinderea unui tablou, imprimarea uneia dintre mai multe opțiuni de text, text care poate fi vizibil sau invizibil.
Mai jos este codul sursă al Rendererului standard.
Sintaxa limbajului șablonului
numele - numele conține litere, cifre și subliniere și trebuie să înceapă cu o literă sau un caracter de subliniere (expresie regulată pentru numele: [a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff \. ] *).