Filtre Liquid disponibile
Filtrele lichide sunt utilizate pentru a modifica ieșirea pentru șiruri, numere, variabile și obiecte. Acestea sunt separate de valoarea la care sunt aplicate de un |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Unele filtre acceptă parametri. Filtrele pot fi combinate, de asemenea, și se aplică în ordine, de la stânga la dreapta.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
Secțiunea de mai jos descrie diferite filtre.
Filtre de matrice
Sunt utilizate filtre de matrice pentru a lucra cu matrice.
batch
Împarte o matrice în mai multe matrici de o anumită dimensiune.
Code
{% assign batches = entityview.records | batch: 2 %}
{% for batch in batches %}
<ul>
{% for item in batch %}
<li>{{ item.fullname }}</li>
{% endfor %}
</ul>
{% endfor %}
Output
<ul>
<li>John Smith</li>
<li>Dave Thomas</li>
</ul>
<ul>
<li>Jake Johnson</li>
<li>Jack Robinson</li>
</ul>
concat
Concatenează două matrice într-o singură matrice nouă.
Având un singur obiect ca parametru, concat returnează o matrice nouă, care constă din matricea originală, cu elementul dat ca ultim element.
Code
Group #1: {{ group1 | join: ', ' }}
Group #2: {{ group2 | join: ', ' }}
Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}
Output
Group #1: John, Pete, Hannah
Group #2: Joan, Bill
Group #1 + Group #2: John, Pete, Hannah, Joan, Bill
except
Selectați toate obiectele dintr-o matrice în care un anumit atribut nu are o anumită valoare. (Acesta este inversul lui unde.)
Code
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Output
Jack Robinson
Prima
Returnează primul element al șirului.
first poate fi folosit, de asemenea, cu o notație punct specială, în cazurile în care trebuie utilizat în interiorul unei etichete.
Code
{% assign words = This is a run of text | split: %}
{{ words | first }}
{% if words.first == This %}
The first word is This.
{% endif %}
Ieșire
This
The first word is This.
group_by
Grupați elementele într-o matrice după un anumit atribut.
Code
{% assign groups = entityview.records | group_by: 'address1_city' %}
{% for group in groups %}
{{ group.key }}:
{% for item in group.items %}
{{ item.fullname }}
{% endfor %}
{% endfor %}
Output
Redmond:
John Smith
Dave Thomas
Jake Johnson
New York:
Jack Robinson
join
Alipește elementele unui vector cu caractrul transmis ca parametru. Rezultatul este un singur șir.
Code
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Output
This, is, a, run, of, text
ultimul
Returnează ultimul element al unui șir.
last poate fi folosit, de asemenea, cu o notație punct specială, în cazurile în care trebuie utilizat în interiorul unei etichete.
Code
{% assign words = This is a run of text | split: -%}
{{ words | last }}
{% if words.last == text -%}
The last word is text.
{% endif -%}
Output
text
The last word is text.
order_by
Returnează elementele unui șir ordonat după un atribut dat, al elementelor din matrice.
Opțional, puteți să furnizați desc ca un al doilea parametru, pentru a sorta elementele în ordine descrescătoare, mai degrabă decât ascendent.
Code
{{ entityview.records | order_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}
Output
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
random
Returnează un singur element selectat aleator din matrice.
Code
{{ group1 | join: ', ' }}
{{ group1 | random }}
Output
John, Pete, Hannah
Pete
select
Selectează valoarea unui atribut dat pentru fiecare element dintr-o matrice și întoarce aceste valori ca un șir.
Code
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Output
Redmond, New York
shuffle
Aplicat la o matrice, returnează o matrice nouă cu aceleași elemente, în ordine randomizată.
Code
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Output
John, Pete, Hannah
Hannah, John, Pete
size
Returnează numărul de elemente dintr-o matrice.
size poate fi folosit, de asemenea, cu o notație punct specială, în cazurile în care trebuie utilizat în interiorul unei etichete.
Code
{% assign words = This is a run of text | split: -%}
{{ words | size }}
{% if words.size == 6 -%}
The text contains 6 words.
{% endif -%}
Output
6
The text contains 6 words.
skip
Sare peste un anumit număr de elemente într-o matrice și întoarce restul.
Code
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Output
run, of, text
take
Preia un anumit număr de elemente din șir, returnând elementele preluate.
Code
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Output
This, is, a
then_by
Adaugă ordonare suplimentară ulterioară la o matrice deja ordonată cu order_by.
Opțional, puteți să furnizați desc ca un al doilea parametru, pentru a sorta elementele în ordine descrescătoare, mai degrabă decât ascendent.
Code
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}
Output
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
where
Selectați toate obiectele dintr-o matrice în care un anumit atribut are o anumită valoare.
Code
{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Output
John Smith
Dave Thomas
Jake Johnson
Filtre dată
Filtrele dată pot fi utilizate pentru aritmetice cu date sau pentru a converti valori DateTime la diverse formate.
dată
Formatează o valoare DateTime folosind un șir de format .NET.
Șiruri standard pentru formatul Dată și oră
Șiruri personalizate pentru formatul Dată și oră
Cod
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Output
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Adaugă numărul specificat de zile întregi și fracționare la valoarea DateTime. Parametrul poate fi pozitiv sau negativ.
Code
{{ now }}
{{ now | date_add_days: 1 }}
{{ now | date_add_days: -2.5 }}
Output
5/7/2018 7:20:46 AM
5/8/2018 7:20:46 AM
5/4/2018 7:20:46 PM
date_add_hours
Adaugă numărul specificat de ore întregi și fracționare la valoarea DateTime. Parametrul poate fi pozitiv sau negativ.
Code
{{ now }}
{{ now | date_add_hours: 1 }}
{{ now | date_add_hours: -2.5 }}
Output
5/7/2018 7:20:46 AM
5/7/2018 8:20:46 AM
5/7/2018 4:50:46 AM
date_add_minutes
Adaugă numărul specificat de minute întregi și fracționare la valoarea DateTime. Parametrul poate fi pozitiv sau negativ.
Code
{{ now }}
{{ now | date_add_minutes: 10 }}
{{ now | date_add_minutes: -2.5 }}
Output
5/7/2018 7:20:46 AM
5/7/2018 7:30:46 AM
5/7/2018 7:18:16 AM
date_add_months
Adaugă numărul specificat de luni întregi la valoarea DateTime. Parametrul poate fi pozitiv sau negativ.
Code
{{ now }}
{{ now | date_add_months: 1 }}
{{ now | date_add_months: -2 }}
Output
5/7/2018 7:20:46 AM
6/7/2018 7:20:46 AM
3/7/2018 7:20:46 AM
date_add_seconds
Adaugă numărul specificat de secunde întregi și fracționare la valoarea DateTime. Parametrul poate fi pozitiv sau negativ.
Code
{{ now }}
{{ now | date_add_seconds: 10 }}
{{ now | date_add_seconds: -1.25 }}
Output
5/7/2018 7:20:46 AM
5/7/2018 7:20:56 AM
5/7/2018 7:20:45 AM
date_add_years
Adaugă numărul specificat de ani întregi la valoarea DateTime. Parametrul poate fi pozitiv sau negativ.
Code
{{ now }}
{{ now | date_add_years: 1 }}
{{ now | date_add_years: -2 }}
Output
5/7/2018 7:20:46 AM
5/7/2019 7:20:46 AM
5/7/2016 7:20:46 AM
date_to_iso8601
Formatează o valoare DatăOră conform standardului ISO 8601. Utilă atunci când se creează fluxul Atom sau elementul HTML5 <time>.
Code
{{ now | date_to_iso8601 }}
Output
2018-05-07T07:20:46Z
date_to_rfc822
Formatează o valoare DatăOră conform standardului RFC 822. Utilă la crearea de fluxuri RSS.
Code
{{ now | date_to_rfc822 }}
Output
Mon, 07 May 2018 07:20:46 Z
Filtre de escape
Secvențele de escape oferă o modalitate de a include caractere speciale în șiruri fără a intra în conflict cu interpretarea obișnuită a acestor caractere de către limbajul sau formatul de programare.
Următoarele filtre de escape înlocuiesc caracterele șir cu secvențe de escape sau elimină caracterele șir nevalide în funcție de tipul de destinație.
escape
HTML-omite un șir.
Code
{{ '<p>test</p>' | escape }}
Output
<p>test</p>
html_safe_escape
Convertește un anumit șir HTML într-un fragment HTML sigur.
Code
{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}
Output
<img src="images/myimage.jpg">
url_escape
URI-scape pentru un șir, pentru includerea într-un URL.
Code
{{ 'This & that//' | url_escape }}
Output
This+%26+that%2F%2F
xml_escape
XML-scape pentru un șir, pentru includerea în ieșirea XML.
Code
{{ '<p>test</p>' | xml_escape }}
Output
<p>test</p>
Filtrele listei
Filtrele listei sunt utilizate pentru a lucra cu anumite valori de atribut listădeentități și pentru a ajuta la crearea vizualizărilor listei.
current_sort
Cu o expresie de sortare dată, întoarce direcția de sortare curentă pentru un anumit atribut.
Code
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Output
DESC
metafilters
Analizează o valoare JSON a unei definiții filtru listă de entități în obiecte ale unui grup de opțiuni de filtrare.
metafiltre pot fi prevăzute opțional cu o interogare de filtru de atribut curent și cu lista de entități curente, permițând ca obiectele filtru returnate să fie semnalizate ca selectate sau neselectate.
Code
{% assign filters = entitylist | metafilters: params.mf, entityview %}
{% if filters.size > 0 %}
<ul id=entitylist-filters>
{% for filter in filters %}
<li class=entitylist-filter-option-group>
{% if filter.selection_mode == 'Single' %}
{% assign type = 'radio' %}
{% else %}
{% assign type = 'checkbox' %}
{% endif %}
<h4 class=entitylist-filter-option-group-label
data-filter-id={{ filter.id | h }}>
{{ filter.label | h }}
</h4>
<ul>
{% for option in filter.options %}
<li class=entitylist-filter-option>
{% if option.type == 'text' %}
<div class=input-group entitylist-filter-option-text>
<span class=input-group-addon>
<span class=fa fa-filter aria-hidden=true></span>
</span>
<input class=form-control
type=text
name={{ filter.id | h }}
value={{ option.text | h }} />
</div>
{% else %}
<div class={{ type | h }}>
<label>
<input
type={{ type | h }}
name={{ filter.id | h }}
value={{ option.id | h }}
{% if option.checked %}
checked=checked
data-checked=true{% endif %}
/>
{{ option.label | h }}
</label>
</div>
{% endif %}
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
<button class=btn btn-default data-serialized-query=mf data-target=#entitylist-filters>Apply Filters</button>
{% endif %}
reverse_sort
Cu o direcție de sortare dată, întoarce direcția opusă de sortare.
Code
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Output
DESC
ASC
Filtre de matematică
Filtrele de matematică vă permit să efectuați operații matematice cu numere.
La fel ca în cazul tuturor filtrelor, filtrele de matematică pot fi combinate și se aplică în ordine, de la stânga la dreapta.
Code
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Output
5
ceil
Rotunjește o valoare în sus până la cel mai apropiat întreg.
Code
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Output
5
5
divided_by
Împarte un număr la un alt număr.
Code
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Output
5
3
3.333333
floor
Rotunjește o valoare în jos până la cel mai apropiat întreg.
Code
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Output
4
4
minus
Scade un număr din alt număr.
Code
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Output
10
9
9.1
modulo
Împarte un număr la un alt număr și întoarce restul.
Code
{{ 12 | modulo: 5 }}
Output
2
plus
Adună un număr cu un alt numãr.
Code
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Output
12
11
11.1
round
Rotunjește o valoare la cel mai apropiat întreg sau la numărul specificat de zecimale.
Code
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Output
5
4
4.56
times
Înmulțește un număr cu un alt număr.
Code
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Output
20
20
20.2
Filtre de șir
Filtrele de șir controlează șirurile.
adăugare
Adaugă un șir la sfârșitul unui alt șir.
Code
{{ 'filename' | append: '.js' }}
Rezultat
filename.js
capitalize
Scrie cu majuscule fiecare cuvânt dintr-un șir.
Code
{{ 'capitalize me' | capitalize }}
Rezultat
Capitalize Me
downcase
Transformă un șir în litere mici.
Code
{{ 'MIxed Case TExt' | downcase }}
Output
mixed case text
newline_to_br
Introduce o etichetă HTML de sfârșit de linie <br /> în fiecare sfârșit de linie dintr-un șir.
Code
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Output
A<br />
B<br />
C<br />
prepend
Setează un șir la începutul unui alt șir.
Code
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Output
Dr. Jane Johnson
remove
Eliminați toate ocurențele unui subșir dintr-un șir.
Code
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Output
Hello, . How are you, ?
remove_first
Elimină prima apariție a unui subșir dintr-un șir.
Code
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Output
Hello, . How are you, Dave?
replace
Înlocuiește toate ocurențele unui șir cu un subșir.
Code
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Output
Hello, John. How are you, John?
replace_first
Înlocuiește prima apariție a unui șir cu un subșir.
Code
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Output
Hello, John. How are you, Dave?
split
Filtrul split preia un subșir ca parametru. Subșirul este folosit ca un separator pentru a împărți un șir dintr-o matrice.
Code
{% assign words = This is a demo of the split filter | split: ' ' %}
First word: {{ words.first }}
First word: {{ words[0] }}
Second word: {{ words[1] }}
Last word: {{ words.last }}
All words: {{ words | join: ', ' }}
Output
First word: This
First word: This
Second word: is
Last word: filter
All words: This, is, a, demo, of, the, split, filter
strip_html
Elimină toate etichetele HTML dintr-un șir.
Code
<p>Hello</p>
Output
Hello
strip_newlines
Elimină orice sfârșituri de linie dintr-un șir.
Code
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Output
ABC
text_to_html
Formatează un șir de text simplu ca HTML simplu. Textul este codificat cu HTML, blocurile de text separate de o linie necompletată vor fi încadrate în etichete de paragraf <p>, întreruperile de linie unice vor fi înlocuite cu <br> și URL-urile vor fi convertite în hyperlinkuri.
Code
{{ note.notetext | text_to_html }}
Output
<p>This is the first paragraph of notetext. It contains a URL: <a href="https://example.com/" rel="nofollow">https://example.com</a></p>
<p>This is a second paragraph.</p>
truncate
Trunchiază un șir până la un anumit număr de caractere. Punctele de suspensie (...) sunt atribuite șirului, iar șirul este inclus în numărul de caractere.
Code
{{ 'This is a long run of text.' | truncate: 10 }}
Output
This is...
truncate_words
Trunchiază un șir până la un anumit număr de cuvinte. Se adaugă puncte de suspensie (...) la șirul trunchiat.
Code
{{ 'This is a long run of text.' | truncate_words: 3 }}
Output
This is a...
upcase
Transformă un șir în litere mari.
Code
{{ 'MIxed Case TExt' | upcase }}
Output
MIXED CASE TEXT
Filtre Tip
Filtrele Tip vă permit să convertiți valori de un tip la alte tipuri.
boolean
Încearcă să convertească o valoare șir în valoare booleană. Dacă valoarea este deja booleană, se returnează neschimbată. Dacă valoarea nu poate fi convertită la booleană, se va returna nul.
Acest filtru va accepta, de asemenea, „activat”, „pornit” sau „da” ca adevărat și „dezactivat”, „oprit” sau „nu” ca fals.
Code
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Output
true
false
true
false
decimal
Încearcă să convertească o valoare șir la număr zecimal. Dacă valoarea este deja un număr zecimal, se returnează neschimbată. Dacă valoarea nu poate fi convertită într-un număr zecimal, se va returna nul.
Code
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Output
10.1
3.14
3.14
integer
Încearcă să convertească o valoare șir în număr întreg. Dacă valoarea este deja un număr întreg, se returnează neschimbată. Dacă valoarea nu poate fi convertită într-un număr întreg, se va returna null.
Code
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Output
10
10
2
string
Încearcă să convertească o valoare în reprezentarea șirului său. Dacă valoarea este deja un șir, se returnează neschimbată. Dacă valoarea este null, se va returna null.
Filtre URL
Filtrele URL vă permit să construiți sau să extrageți părți din URL-uri.
add_query
Adaugă un parametru șir de interogare la un URL. Dacă parametrul există deja în URL, valoarea parametrului se actualizează.
Dacă acest filtru este aplicat unui URL complet absolut, rezultatul este un URL absolut actualizat. În cazul în care este aplicat la o cale, rezultatul este o cale de actualizare.
Code
{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}
{{ '/path?page=1' | add_query: 'page', 2 }}
Output
https://example.com/path?page=1&foo=bar
/path?page=2
base
Obține URL-ul de bază al unui anumit URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Output
https://example.com
host
Obține partea gazdă a unui URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Output
example.com
path
Obține partea de cale a unui URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Output
/path
/path
path_and_query
Obține calea și partea de interogare a unui URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}
{{ '/path?foo=bar&page=2' | path_and_query }}
Output
/path?foo=bar&page=2
/path?foo=bar&page=2
port
Obține numărul de port al URL-ului.
Code
{{ 'https://example.com/path?foo=bar&page=2' | port }}
{{ 'https://example.com/path?foo=bar&page=2' | port }}
{{ 'https://example.com:9000/path?foo=bar&page=2' | port }}
Output
80
443
9000
remove_query
Elimină un parametru șir de interogare dintr-un URL. Dacă parametrul nu există în URL, URL-ul se returnează neschimbat.
Dacă acest filtru este aplicat unui URL complet absolut, rezultatul este un URL absolut actualizat. În cazul în care este aplicat la o cale, rezultatul este o cale de actualizare.
Code
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Output
https://example.com/path
/path
scheme
Obține partea de schemă a unui URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Output
http
https
Filtre suplimentare
Aceste filtre oferă funcționalitate generală utilă.
default
Returnează o valoare implicită pentru orice variabilă, fără o valoare atribuită (adică nul).
Code
{{ snippets[Header] | default: 'My Website' }}
Output
<!-- If a snippet with the name Header returns null -->
My Website
file_size
Aplicată la o valoare numerică reprezentând mulți baiți, returnează o dimensiune de fișier formatată cu o unitate de scară corespunzătoare.
Opțional, poate fi trecut un parametru de precizie, pentru a controla numărul de zecimale din rezultat. Precizia implicită este 1.
Code
{{ 10000000 | file_size }}
{{ 2050 | file_size: 0 }}
{{ entity.notes.first.filesize | file_size: 2 }}
Output
9.5 MB
2 KB
207.14 KB
h
Oferă o reprezentare HTML a unui atribut. De exemplu, afișarea unei reprezentări HTML a atributului XML al interogării FetchXML.
Code
{{ samplequery.xml | h }}
Output
<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>
has_role
Aplicată la un utilizator, returnează adevărat în cazul în care utilizatorul aparține rolului dat. Returnează fals dacă nu.
Code
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
liquid
Redă un șir drept cod Liquid. Acest cod are acces la contextul actual Liquid de execuție (variabile etc.).
Notă
Acest filtru ar trebui să fie utilizat cu precauție și, în general, ar trebui aplicat numai la valorile aflate sub controlul exclusiv al autorilor conținutului de pe site sau al altor utilizatori care pot fi de încredere pentru a scrie cod Liquid.
Code
{{ page.adx_copy | liquid }}