Sintaxa și posibilitățile șabloanelor

Bazele lucrului cu șabloane

Șabloanele susțin variabile definite și o sintaxă specială, care oferă mai multe posibilități decât șabloanele statice. Adică un anumit text se transformă după reguli definite. Dacă ați lucrat cu motorul de șabloane Twig, atunci știți deja aproape tot ce este necesar. Pe această pagină este descrisă funcționalitatea de bază disponibilă. Cei care doresc să afle mai multe pot consulta documentația oficială a Twig. Însă nu toate posibilitățile Twig sunt disponibile în șabloanele noastre, așa că nu uitați să verificați rezultatul cu ajutorul funcției de previzualizare, precum și să faceți campanii de test către propriile conturi înainte de lansarea unei campanii către un număr mare de utilizatori reali.

Variabile disponibile în șabloane:

  1. subscriber — este un obiect care conține informații despre abonatul curent. Puteți vedea structura completă a acestei variabile pe o pagină separată.
  2. campaign — este un obiect care conține informații despre campania de marketing curentă. Puteți vedea structura completă a acestei variabile pe o pagină separată. Această variabilă nu va conține date în modul de previzualizare, deoarece el funcționează în afara contextului oricărei campanii de marketing.
  3. unsubscribe_url — este un link HTTP către pagina noastră, unde abonatul se poate dezabona de la campania de marketing curentă. Dacă aveți propriile setări de abonare pe site-ul vostru, puteți folosi un link de dezabonare care duce la site-ul vostru. Dacă abonatul nu găsește o posibilitate simplă și convenabilă de a se dezabona de la o campanie nedorită, el, probabil, va marca e-mailul vostru ca spam, așa că vă recomandăm să oferiți în fiecare e-mail posibilitatea de dezabonare. Această variabilă nu va fi disponibilă în modul de previzualizare.

În șabloane se pot folosi variabile

Pentru folosirea unei variabile, ea trebuie învelită în acolade duble. De exemplu, pentru afișarea variabilei test126 trebuie să scrieți {{ test126 }}. Respectarea majusculelor și minusculelor este obligatorie, iar spațiile — opționale. Adică se poate scrie {{test126}} sau {{ test126         }}, dar {{ TESt126 }} — nu se poate. Variabila test126 este un exemplu, în realitate o astfel de variabilă nu există la noi.

Dacă variabila este un obiect complex și are propriile proprietăți, accesul la ele se face printr-un punct. De exemplu, accesul la proprietatea id a variabilei subscriber arată așa: {{ subscriber.id }}. Acesta este un exemplu real — în șabloane este disponibilă variabila subscriber, și ea are proprietatea id. Lista completă de proprietăți poate fi văzută pe o pagină separată. La array-uri se poate accesa prin index, folosind paranteze pătrate. În același timp, trebuie să fiți sigur că un astfel de index există. De exemplu, {{ subscriber.tags[0] }}. Dacă abonatul nu are nicio etichetă, încercarea de a afișa prima (cu indexul 0) etichetă nu va afișa nimic (adică va fi afișat un «șir gol», cum spun programatorii).

Se pot efectua operațiuni de bază cu datele

Sunt susținute operațiuni matematice:

  • adunare {{ price + tax }}
  • înmulțire {{ count * 2 }}
  • împărțire {{ total / 3 }}

Operatorul condițional (IF)

  • if de bază {% if subscriber.is_active %} Sunteți abonat la campanie {% endif %}
  • operatorul if cu bloc else {% if subscriber.is_active %} Sunteți abonat la campanie {% else %} Sunteți dezabonat de la campanie {% endif %}
  • Lanț de verificări {% if subscriber.gender == 'male' %} Sunteți bărbat {% elseif subscriber.gender == 'female' %} Sunteți femeie {% elseif subscriber.gender == '' %} Sexul vostru nu este indicat {% endif %}

Operatorul if are obligatoriu o etichetă de deschidere  {% if condition %} și o etichetă de închidere {% endif %}. Înăuntru se poate plasa orice număr de secțiuni  {% elseif condition %}. De asemenea, opțional se poate adăuga o secțiune {% else %}, care se va declanșa fără condiții suplimentare, dacă execuția ajunge până la ea. Adică dacă condițiile de declanșare (condition) ale tuturor părților anterioare ale operatorului if nu s-au îndeplinit.
 

Cicluri (FOR)

Ciclurile sunt necesare pentru afișarea listelor. Să ne imaginăm că avem o listă care se păstrează în variabila items. Iată cum se poate parcurge:

{% for item in items %}
  {{ item }}
{% endfor %}

Valoarea variabilei item va fi diferită la fiecare iterație a ciclului. Înăuntrul ciclului sunt de asemenea disponibile unele alte variabile referitoare la iterația curentă:

  • loop.index — numărul iterației, începe de la 1
  • loop.first — este prima iterație? (true/false)
  • loop.last — este ultima iterație? (true/false)

Ciclul poate fi combinat cu o verificare a prezenței datelor:

{% for item in items %}
  {{ item }}
{% else %}
  Array-ul items este gol
{% endfor %}