Tustena Liquid

Modificata il martedì, 31 luglio 2018 10:32 da Fabio — Categorizzata come: Non Categorizzata

Tustena Liquid il markup facile per le stampe personalizzate

Liquid è un linquaggio per la definizione di markup facile per le configurazione di stampe personalizzate. Pur essendo di recente concezione si può ben considerare uno standard indistriale percui abbiamo deciso di essere tra i primi ad implementarlo in Tustena CRM.

In questa pagina trovate la spiegazione del funzionamento della sintassi generale e degli operatori disponibili; alla pagina relativa agli esempi

Ci sono due tipi di markup in Liquid: Output e Tag.



Per esempio le seguenti righe:

The word "tobi" in uppercase: {{ 'tobi' | upcase }}
The word "tobi" has {{ 'tobi' | size }} letters!
Change "Hello world" to "Hi world": {{ 'Hello world' | replace: 'Hello', 'Hi' }}
The date today is {{ now | date: 'yyyyMMdd' }}

daranno come risultato:

The word "tobi" in uppercase: TOBI
The word "tobi" has 4 letters!
Change "Hello world!" to "Hi world!": Hi world
The date today is (la data corrente)

I tag disponibili sono:


Capture

Capture inserisce il risultato in una variabile senza stamparlo.

{% capture heading %}
  Tustena is the best!
{% endcapture %}
 ...
<h1>{{ heading }}</h1>

Capture è utile per salvare il contenuto e utilizzarlo in seguito all'interno del template.

Assign

Assign assegna un valore ad una variabile.
{% assign foo = 'monkey' %}
 
{{ foo }}
Puoi utilizzare il valore in seguito nel template

Cycle

Cycle è normalmente utilizzato all'interno di un loop per alternare i valori, come i colori o le classi.
{% for item in items %}
<div class="{% cycle 'red', 'green', 'blue' %}"> {{ item }} </div>
{% end %}

il risultato è:
Item one
Item two
Item three
Item four
Item five

Case

Se va verificata più di una condizione usare il Case

{% case template %}
  {% when 'index' %}
     Welcome
  {% when 'product' %}
     {{ product.vendor | link_to_vendor }} / {{ product.title }}
  {% else %}
     {{ page_title }}
{% endcase %}

For

"For" cicla su un array o una collection. Ci sono molte variabili utili da utilizzare all'interno del ciclo.

Basic usage:
{% for item in collection %}
{{ forloop.index }}: {{ item.name }}
{% endfor %}

Advanced usage:
{% for item in collection %}
<div {% if forloop.first %}class="first"{% endif %}>
     Item {{ forloop.index }}: {{ item.name }}
</div>
{% endfor %}

Si può anche definire un limite e un offset come in SQL. Ricorda che l'offset inizia a 0 per il primo elemento.
{% for item in collection limit:5 offset:10 %}
     {{ item.name }}
{% end %}

Per invertire il ciclo utilizzare
{% for item in collection reversed %}

Variabili disponibili:
Uso di limit:
 # array = [1,2,3,4,5,6]
  {% for item in array limit:2 offset:2 %} 
    {{ item }}
  {% endfor %} 
  # results in 3,4 

Unless

Unless is a conditional just like 'if' but works on the inverse logic.
{% unless x &lt; 0 %} x is greater than zero {% end %}

If

If e' un blocco condizionale

{% if user.admin %}
   Admin user!
{% else %}
   Not admin user
{% endif %}

There are {% if count &lt; 5 %} less {% else %} more {% endif %} items than you need.

IfChanged

The ifchanged block tag is used within a loop. It checks its own rendered contents against its previous state and only displays its content if the value has changed.

For example, in order to show the date only when a post is published on a new day (always displaying the time):

{% ifchanged %}
  <div class="date">{{ article.published_at | date: '%B %d'  }}</div>
{% endifchanged %}
<div class="time">{{ article.published_at | date: '%I:%M %p'  }}</div>

Tables

{% tablerow item in items cols: 3 limit: 12 %}
    {{ item.variable }}
  {% endtablerow %}


{% tablerow item in items cols: 3 %}
    {% if col_first %}
      First column: {{ item.variable }}
    {% else %}
      Different column: {{ item.variable }}
    {% endif %}
  {% endtablerow %}

I filtri implementati sono:


Estensioni custom di Tustena: