Personal tools
Namespaces
Variants
Actions

Design:Twig

From Katapulta

(Difference between revisions)
Jump to: navigation, search
m (Comentarii)
m (Moștenire template)
Line 40: Line 40:
==Moștenire template==
==Moștenire template==
-
===Template de bază===
+
Cea mai puternică caracteristică a limbajului Twig este moștenirea template-urilor. Această moștenire permite crearea unui template „schelet” de bază care conține toate elementele comune ale site-ului tău și definirea așa numitelor '''blocks''' (blocuri) pe care copiii template-ului de bază le pot suprascrie.
-
===Template copil===
+
 
-
===Template părinte===
+
Pentru a înțelege mai ușor cele explicate sus iată un exemplu.
-
===Blocuri===
+
 
 +
'''Template-ul de bază'''
 +
<html><div class="highlight">
 +
<pre><span class="x">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"&gt;</span><span class="x">&lt;html lang="en"&gt;</span><span class="x">&lt;head&gt;</span><span class="x">  </span><span class="cp">{%</span> <span class="k">block</span> <span class="nv">head</span> <span class="cp">%}</span><span class="x"></span><span class="x">    &lt;link rel="stylesheet" href="style.css" /&gt;</span><span class="x">    &lt;title&gt;</span><span class="cp">{%</span> <span class="k">block</span> <span class="nv">title</span> <span class="cp">%}{%</span> <span class="k">endblock</span> <span class="cp">%}</span><span class="x"> - My Webpage&lt;/title&gt;</span><span class="x">  </span><span class="cp">{%</span> <span class="k">endblock</span> <span class="cp">%}</span><span class="x"></span><span class="x">&lt;/head&gt;</span><span class="x">&lt;body&gt;</span><span class="x">  &lt;div id="content"&gt;</span><span class="cp">{%</span> <span class="k">block</span> <span class="nv">content</span> <span class="cp">%}{%</span> <span class="k">endblock</span> <span class="cp">%}</span><span class="x">&lt;/div&gt;</span><span class="x">  &lt;div id="footer"&gt;</span><span class="x">    </span><span class="cp">{%</span> <span class="k">block</span> <span class="nv">footer</span> <span class="cp">%}</span><span class="x"></span><span class="x">      &amp;copy; Copyright 2009 by &lt;a href="http://domain.invalid/"&gt;you&lt;/a&gt;.</span><span class="x">    </span><span class="cp">{%</span> <span class="k">endblock</span> <span class="cp">%}</span><span class="x"></span><span class="x">  &lt;/div&gt;</span><span class="x">&lt;/body&gt;</span><span class="x">&lt;/html&gt;</span></pre>
 +
</div></html>

Revision as of 19:50, 19 April 2011

Twig este limbajul folosit în Katapulta pentru crearea și personalizarea template-urilor de magazin. Este simplu, rapid de învățat și foarte puternic în dezvoltarea template-urilor.

În Katapulta un template este un simplu fișier cu extensia .html care conține taguri HTML, CSS și Twig.

În Twig există două tipuri de taguri:

  • {% ... %}
    - folosit pentru executarea structurilor de control (for, if, etc.)
  • {{ ... }}
    - folosit pentru afișarea pe ecran a rezultatului unei expresii

Contents

Variabile

Variabilele sunt date care pot fi folosite în template. Variabilele pot avea atribute sau elemente care pot fi accesate. Poți folosi punctul (
.
) pentru accesarea atributelor unei variabile sau așa numita sintaxă „subscript” (
[]
). Următoarele linii de cod fac același lucru folosind sintaxe diferite:

{{ foo.bar }}
{{ foo['bar'] }}

Dacă o variabilă sau un atribut nu există, va fi returnată valoarea
null
.

Filtre

Formatul de afișare a variabilelor poate fi modificat cu ajutorul filtrelor. Filtrele sunt separate de variabile prin simbolul | și opțional pot avea argumente între paranteze. Deasemenea pot fi înlănțuite mai multe filtre. Rezultatul unui filtru va fi aplicat următorului filtru.

De exemplu
{{ name|striptags|capitalize }}
va înlătura toate tag-urile HTML din variabila „name” și va capitaliza rezultatul. Filtrele care acceptă argumente au paranteze în jurul argumentelor, la fel ca apelul unei funcții. Un alt exemplu, avem o listă de elemente (array) și vrem să returnăm elementele sub forma unui string, separate prin virgulă:
{{ list|join(', ') }}
.

Comentarii

Pentru a comenta o linie dintr-un template, folosește sintaxa pentru comentarii:
{# ... #}
.

{# note: disabled template because we no longer use this
    {% for user in users %}
        ...
    {% endfor %}
#}

Moștenire template

Cea mai puternică caracteristică a limbajului Twig este moștenirea template-urilor. Această moștenire permite crearea unui template „schelet” de bază care conține toate elementele comune ale site-ului tău și definirea așa numitelor blocks (blocuri) pe care copiii template-ului de bază le pot suprascrie.

Pentru a înțelege mai ușor cele explicate sus iată un exemplu.

Template-ul de bază

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html lang="en"><head>  {% block head %}    <link rel="stylesheet" href="style.css" />    <title>{% block title %}{% endblock %} - My Webpage</title>  {% endblock %}</head><body>  <div id="content">{% block content %}{% endblock %}</div>  <div id="footer">    {% block footer %}      &copy; Copyright 2009 by <a href="http://domain.invalid/">you</a>.    {% endblock %}  </div></body></html>