wiki
Benvenuto
Guest
, sei in:
<root>
Manual
Manuale IT
Tech
•
Login
• Welcome
Guest
, you are in:
<root>
Manual
Manuale IT
Tech
•
Login
ScrewTurn Wiki
Navigazione (Tech)
¶
Pagina Principale
Pagina Principale (root)
Pagina Casuale
Nuova Pagina
Tutte le Pagine
Categorie
Percorsi di Navigazione
Amministrazione
Gestione File
Registrati
Ricerca wiki
»
Navigation (Tech)
¶
Main Page
Main Page (root)
Random Page
Create a new Page
All Pages
Categories
Navigation Paths
Administration
File Management
Create Account
Search the wiki
»
Back
Tustena Liquid
Modified on 2018/07/31 10:32
by
Fabio
Categorized as
Uncategorized
===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 [http://wiki.tustena.com/Tech.Esempi-Liquid.ashx | relativa agli esempi] Ci sono due tipi di markup in Liquid: Output e Tag. * {{Output}} - stampa il testo inserito applicando eventuali filtri ed è incluso tra due graffe consecutive (((<nowiki>{{ testo da stampare }}</nowiki>))) * {{Tag}} - esegue una funzione e stampa il risultato. E' incluso in tra il simbolo graffa seguito dal percento e viceversa ((({% comando da eseguire %}))) Per esempio le seguenti righe: ((( <nowiki>The word "tobi" in uppercase: {{ 'tobi' | upcase }}</nowiki>{br} <nowiki>The word "tobi" has {{ 'tobi' | size }} letters!</nowiki>{br} <nowiki>Change "Hello world" to "Hi world": {{ 'Hello world' | replace: 'Hello', 'Hi' }}</nowiki>{br} <nowiki>The date today is {{ now | date: 'yyyyMMdd' }}</nowiki>{br} ))) daranno come risultato: ((( <nowiki>The word "tobi" in uppercase: TOBI</nowiki>{br} <nowiki>The word "tobi" has 4 letters!</nowiki>{br} <nowiki>Change "Hello world!" to "Hi world!": Hi world</nowiki>{br} <nowiki>The date today is (la data corrente)</nowiki>{br} </nowiki>))) I tag disponibili sono: * {{assign}} - assegna un valore ad una variabile * {{capture}} - cattura il testo contenuto nel blocco e lo assegna ad una variabile * {{case}} - è lo standard case ... when * {{cycle}} - è utilizzato per ciclare dei valori all'interno di un loop (utile per alternare i colori ad ogni riga in una tabella) * {{for}} - il classico ciclo for * {{if}} - la codizione if/else * {{unless}} - la codizione inversa di if/else * {{include}} - include un altro template - {% include nomefile.html %} * {{comment}} - non stampa il contenuto * {{ifchanged}} - è utilizzato all'interno di un loop per stampare solo se il dato è cambiato ===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 è: ((( <div class="red"> Item one </div> <div class="green"> Item two </div> <div class="blue"> Item three </div> <div class="red"> Item four </div> <div class="green"> Item five</div>))) ===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: * {{forloop.name}} 'Il nome della collezione' * {{forloop.length}} La dimensione del loop * {{forloop.index}} La posizione corrente dell'elemento all'interno della collection; forloop.index inizia a 1. * {{forloop.index0}} La posizione corrente dell'elemento all'interno della collection dove il primo elemento inizia a 0. * {{forloop.rindex}} Numero di elementi che rimangono nel loop (length - index) dove 1 è l'ultimo. * {{forloop.rindex0}} Numero di elementi che rimangono nel loop dove 0 è l'ultimo. * {{forloop.first}} Restituisce true se è il primo elemento. * {{forloop.last}} Restituisce true se è l'ultimo elemento. 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 < 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 < 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 %}@@ * {{tablerowloop.length}} quanti elementi ci sono nel loop * {{tablerowloop.index}} la posizione nel loop corrente * {{tablerowloop.index0}} la posizione nel loop corrente (zero based) * {{tablerowloop.rindex}} quanti elementi mancano? * {{tablerowloop.rindex0}} quanti elementi mancano? (zero based) * {{tablerowloop.first}} è il primo elemento? * {{tablerowloop.last}} è l'ultimo elemento? * {{tablerowloop.col}} indice della colonna nella riga corrente * {{tablerowloop.col0}} indice della colonna nella riga corrente (zero based) * {{tablerowloop.col_first}} è la prima colonna della riga? * {{tablerowloop.col_last}} è l'ultima colonna della riga? @@{% tablerow item in items cols: 3 %} {% if col_first %} First column: {{ item.variable }} {% else %} Different column: {{ item.variable }} {% endif %} {% endtablerow %}@@ '''I filtri implementati sono:''' * {{date}} - formatta la data con la sintassi .Net * {{capitalize}} - Capitalizza tutte la parole * {{downcase}} - converte il testo in minuscolo * {{upcase}} - converte il testo in maiuscolo * {{first}} - restituisce il primo valore di un array * {{last}} - restituisce l'ultimo valore di un array * {{join}} - unisce gli elementi di un array intramezzando un carattere * {{sort}} - ordina gli elementi di un array * {{map}} - * {{size}} - restituisce la dimensione di un array di stringhe * {{escape}} - l'escape di una string * {{escape_once}} - esegue l'escape di una string html senza modificare gli elementi già convertiti. * {{strip_html}} - rimuove i tag html da una stringa * {{strip_newlines}} - rimuove gli 'a capo' (\n) da una stringa * {{newline_to_br}} - sostituisce gli 'a capo' (\n) con un break html <nowiki><br/></nowiki> * {{replace}} - sostituisce ogni occorrenza * {{replace_first}} - sostituisce la prima occorrenza * {{remove}} - rimuove ogni occorrenza * {{remove_first}} - rimuove la prima occorrenza * {{truncate}} - tronca la stringa a n caratteri * {{truncatewords}} - tronca la stringa a n parole * {{prepend}} - prepone alla stringa il valore * {{append}} - accoda alla stringa il valore * {{minus}} - sottrae il valore * {{plus}} - somma il valore * {{times}} - moltiplica il valore * {{divided_by}} - divide il valore '''Estensioni custom di Tustena:''' * {{sum}} - somma il valore considerando le come numeri e restituendo un valore decimale * {{multiply}} - moltiplica il valore considerando le come numeri e restituendo un valore decimale * {{divide}} - divide il valore considerando le come numeri e restituendo un valore decimale * {{subtract}} - sottrae il valore considerando le come numeri e restituendo un valore decimale * {{format_as_money}} - formatta il dato numerico arrotondando al secondo decimale * {{empty_cell}} - inserisce una cella vuota nel caso il risultato sia un valore nullo * {{split}} - divide la stringa in due stringhe divise * {{format_date}} - formatta la stringa in formato data * {{is_date}} - verifica se la stringa è di tipo data * {{chars}} - conta il numero di caratteri * {{newline_to_br}} - nel caso di un campo testo con più righe, serve per mandare a capo come nella formattazione originale del testo * {{capitalize_all}} - restituisce la stringa in maiuscolo * {{format_as_percentage}} - restituisce la stringa formattata in percentuale * {{format_discount_formula}} - * {{format_time}} - formatta la stringa in formato ora * {{format_decimal}} - formatta la stringa in formato decimale (con un numero decimali a piacere) * {{default}} - se la stringa da stampare risulta vuota, questo funzione stampa un valore predefinito * {{get_lead_cross_string}} - * {{discount}} - ritorna la formula di sconto dell'oggetto * {{str_len}} - calcola la lunghezza della stringa * {{now / tustena_now}} - Restituisce la data odierna * {{tustena_url}} - Restituisce l'indirizzo di Tustena impostato nella chiave TustenaUrldel settings.config
Meta Keywords:
Meta Description:
Change Comment: