Grav - Twig Filtry i funkcje

W tym rozdziale przestudiujmy Twig Filters and Functions. Filtry służą do formatowania danych tak, jak chcesz, z wymaganymi danymi wyjściowymi. Funkcje służą do generowania treści.

Szablony Twig to pliki tekstowe zawierające wyrażenia i zmienne zastąpione wartościami. Twig używa trzech typów tagów.

  • Output tags - Następująca składnia służy do wyświetlania tutaj wyniku obliczonego wyrażenia.

{{  Place Your Output Here  }}
  • Action Tags - Poniższa składnia służy do wykonywania instrukcji tutaj.

{%  executable statements are placed here  %}
  • Comment tags - Poniższa składnia służy do zapisywania komentarzy w pliku szablonu Twig.

{#  write your comment here  #}

Filtry Twig

Twig Filters używa rozszerzenia |znak, aby zastosować filtry do zmiennej Twig, po którym następuje nazwa filtru. Argumenty można przekazywać w nawiasach podobnie jak funkcje Twiga.

Poniższa tabela przedstawia filtry Twig używane w Grav -

Sr.No. Filtr i opis Przykład
1

Absolute URL

Pobiera ścieżkę względną i konwertuje ją na bezwzględny adres URL.

'<img src="/some/path/img.jpg"/>' |absolute_url

konwertuje na -

<img src="http://learn.getGrav.org/some/path/img.jpg" />
2

Camelize

Konwertuje ciąg do formatu CamelCase.

'contact_us'| camelize

konwertuje na -

ContactUs
3

Contains

jeśli znajdzie ciąg.

'This is some string' | contains('some')

wyjście to -

1
4

Defined

Możesz sprawdzić, czy jakaś zmienna jest zdefiniowana, czy nie. Jeśli zmienna nie jest zdefiniowana, możesz podać wartość domyślną.

set header_image_width = 
page.header.header_image_width|defined(900)

Ustawia header_image_width z wartością 900, jeśli nie jest zdefiniowana.

5

Ends-With

Możesz określić, czy ciąg kończy się podanym ciągiem, używając filtru Ends-With.

'this is an example for ends-with filter' | ends_with('filter')

jest wyświetlany jako -

True
6

FieldName

Filtruje nazwę pola, zmieniając kropkę na notację tablicową.

'field.name'|fieldName

jest wyświetlany jako -

field[name]
7

Humanize

Służy do konwersji ciągu do formatu czytelnego dla człowieka.

'some_text_to_read'|humanize

jest wyświetlany jako -

Some text to read
8

Ksort

Sortuje mapę tablicową za pomocą klucza.

{% set ritems = {'orange':1, 'apple':2, 'peach':3}|ksort %}
{% for key, value in ritems %}{{ key }}:{{ value }}, {% endfor %}

jest wyświetlany jako -

apple:2, orange:1, peach:3,
9

Left Trim

Służy do usuwania białych spacji na początku łańcucha i usuwa pasujący znak podany z lewej strony łańcucha.

'/strip/leading/slash/'|ltrim('/')

jest wyświetlany jako -

strip/leading/slash/
10

Markdown

Służy do konwersji ciągu znaków zawierających markdown do HTML przy użyciu parsera znaczników Grav.

'## some text with markdown'|markdown

jest wyświetlany jako -

some text with markdown

11

MD5

Przy użyciu tego filtru można utworzyć skrót md5 dla ciągu znaków.

'something'|md5

jest wyświetlany jako -

437b930db84b8079c2dd804a71936b5f
12

Monthize

Korzystając z filtra Monthize, możemy przekonwertować liczbę całkowitą dni na liczbę miesięcy.

'61'|monthize

jest wyświetlany jako -

2
13

Nice Time

Używając filtra Nice Time, możemy otrzymać datę w ładnym, czytelnym dla człowieka formacie czasu jako wynik.

page.date|nicetime(false)

jest wyświetlany jako -

3 hrs ago
14

Ordinalize

Porządkowe (jak 1 st 2 bd , 3 III ) można otrzymać z liczb stosując filtr Ordinalize.

'78'| ordinalize

jest wyświetlany jako -

78th
15

Pluralize

Ciąg można przekonwertować na jego angielską formę w liczbie mnogiej za pomocą filtra Pluralize.

'child'|pluralize

jest wyświetlany jako -

children
16

Randomize

Ten filtr pomaga w losowaniu podanej listy. Jeśli parametr zawiera jakieś wartości, to te wartości są pomijane przy losowaniu.

{% set ritems = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']|randomize(3) %}
{% for ritem in ritems %}{{ ritem }}, {% endfor %}

jest wyświetlany jako -

one, two, three, eight, six, five, nine, seven, ten, four,
17

Right Trim

Jest dość podobny do lewego trymowania, z wyjątkiem tego, że usuwa białe znaki i dopasowany znak z prawej strony ciągu.

'/strip/leading/slash/'|rtrim('/')

jest wyświetlany jako -

/strip/leading/slash
18

Singularize

Ciąg można przekonwertować na angielską wersję pojedynczą przy użyciu filtra liczby pojedynczej.

'vehicles'|singularize

jest wyświetlany jako -

vehicle
19

Safe Email

Filtr bezpiecznej poczty e-mail służy do konwersji adresu e-mail na znaki ASCII, co utrudnia spamowanie wiadomości e-mail.

"[email protected]"|safe_email

wyjście to -

[email protected]
20

SortByKey

Służy do sortowania mapy tablicowej za pomocą kluczy.

{% set people = [{'email':'[email protected]', 'id':3}, {'email':'[email protected]', 'id':1}, {'email':'[email protected]', 'id':7}]|sort_by_key('id') %}
{% for person in people %}{{ person.email }}:{{ person.id }}, {% endfor %}

wyświetla -

[email protected]:1, [email protected]:3, [email protected]:7,
21

Starts-With

Możesz określić, czy ciąg zaczyna się od danego ciągu, używając filtru Starts-With.

'this is an example for starts-with filter' |starts_with('this')

wyjście to -

true
22

Translate

aby uzyskać bardziej szczegółowe informacje.

MY_LANGUAGE_KEY_STRING

wyświetla -

'Some text in English'
23

Translate Admin

Tłumaczy ciąg na bieżący język, który jest ustawiony w user.yaml plik.

24

Titleize

Ciąg jest konwertowany na format wielkości liter przy użyciu opcji Titleize.

'welcome page'|titleize

jest wyświetlany jako -

Welcome Page
25

UnderScoreize

format przy użyciu filtra UnderScoreize.

'ContactUs'|underscorize

jest konwertowany na -

contact_us
26

Truncate a string

Możesz użyć Truncate, aby obciąć ciąg lub skrócić ciąg, musisz określić liczbę znaków.

'one sentence. two sentences'|truncate(5)

skraca się do -

one s...

Możesz użyć true jako parametr, jeśli nie chcesz skracać ciągu do najbliższego końca zdania po podanej liczbie znaków.

'one sentence. two sentences'|truncate(5, true)

skraca się do -

one sentence
Możesz także usunąć tekst HTML, ale powinieneś użyć striptags filtrować przed truncate filtr.
'<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5)

jest wyświetlany jako -

one s

Funkcje gałązki

Funkcje Twig są wywoływane bezpośrednio przez przekazanie parametru. Poniższa tabela zawiera listę funkcji -

Sr.No. Opis funkcji Przykład
1

Array

Ta funkcja rzutuje wartość na tablicę.

array(value)
2

Authorize

Ta funkcja sprawia, że ​​uwierzytelniony użytkownik jest upoważniony do przeglądania zasobu i akceptuje ciąg uprawnień lub tablicę ciągów uprawnień.

authorize(['admin.statistics', 'admin.super'])
3

Dump

Akceptuje prawidłową zmienną twig i zrzuca ją do panelu debugera Grav. Jednak debuger powinien być włączony, aby zobaczyć wartości kart komunikatów.

dump(page.header)
4

Debug

Działa to tak samo jak funkcja dump ().

5

Gist

Ta funkcja tworzy kod osadzania Gist na podstawie identyfikatora Github Gist.

6

Random String Generation

Ta funkcja utworzy losowy ciąg o określonej liczbie znaków. Te ciągi mogą być używane jako unikalny identyfikator lub klucz.

generate_random_string(10)
7

Repeat

Ta funkcja będzie powtarzać ciąg przez określony czas.

repeat('Grav ', 10) will repeat Grav 10 times.
8

String

Generuje losowy ciąg o określonej długości znaków.

ta (23)
9

Translate Array

Jest to funkcja związana z |ta filtr.

10

Url

Ten filtr utworzy adres URL, a także przekształci strumienie adresów URL PHP w prawidłowe zasoby HTML. Jeśli nie można rozwiązać adresu URL, można przekazać wartość domyślną.

url('theme://images/logo.png') | default('http://www.placehold.it/150x100/f4f4f4')
11

Translate

Używając filtru Tłumacz, ciąg jest tłumaczony jako |t filtr.

t('SITE_NAME')

jest przetłumaczone na -

Site Name