Partajați prin


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

&lt;p&gt;test&lt;/p&gt;

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

&lt;p&gt;test&lt;/p&gt;

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 }}

Consultați și