Grav - Filter dan Fungsi Ranting

Dalam bab ini, mari kita pelajari Twig Filters and Functions. Filter digunakan untuk memformat data seperti yang Anda inginkan dengan output yang diperlukan juga. Fungsi digunakan untuk menghasilkan konten.

Templat ranting adalah file teks yang berisi ekspresi dan variabel yang diganti dengan nilai. Twig menggunakan tiga jenis tag.

  • Output tags - Sintaks berikut digunakan untuk menampilkan hasil ekspresi yang dievaluasi di sini.

{{  Place Your Output Here  }}
  • Action Tags - Sintaks berikut digunakan untuk menjalankan pernyataan di sini.

{%  executable statements are placed here  %}
  • Comment tags - Sintaks berikut digunakan untuk menulis komentar di file template Twig.

{#  write your comment here  #}

Filter Ranting

Twig Filters menggunakan |karakter untuk menerapkan filter ke variabel Twig diikuti dengan nama filter. Argumen dapat diberikan dalam tanda kurung sama seperti fungsi Twig.

Tabel berikut menunjukkan Filter Ranting yang digunakan di Grav -

Sr.No. Filter & Deskripsi Contoh
1

Absolute URL

Ini mengambil jalur relatif dan mengubahnya menjadi URL absolut.

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

diubah menjadi -

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

Camelize

Ini mengubah string ke format CamelCase.

'contact_us'| camelize

diubah menjadi -

ContactUs
3

Contains

jika menemukan stringnya.

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

outputnya adalah -

1
4

Defined

Anda dapat memeriksa apakah beberapa variabel ditentukan atau tidak. Jika variabel tidak ditentukan, Anda dapat memberikan nilai default.

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

Ini mengatur header_image_width dengan nilai 900 jika tidak ditentukan.

5

Ends-With

Anda dapat menentukan apakah sebuah string diakhiri dengan string tertentu dengan menggunakan filter Ends-With.

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

itu ditampilkan sebagai -

True
6

FieldName

Ini memfilter nama bidang dengan mengubah titik menjadi notasi array.

'field.name'|fieldName

itu ditampilkan sebagai -

field[name]
7

Humanize

Ini digunakan untuk mengonversi string ke format yang dapat dibaca manusia.

'some_text_to_read'|humanize

itu ditampilkan sebagai -

Some text to read
8

Ksort

Ini mengurutkan peta array menggunakan kunci.

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

itu ditampilkan sebagai -

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

Left Trim

Ini digunakan untuk menghapus spasi putih di awal string dan menghapus karakter yang cocok yang diberikan dari sisi kiri string.

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

itu ditampilkan sebagai -

strip/leading/slash/
10

Markdown

Ini digunakan untuk mengubah string yang mengandung penurunan harga menjadi HTML menggunakan parser penurunan harga Grav.

'## some text with markdown'|markdown

itu ditampilkan sebagai -

some text with markdown

11

MD5

Hash md5 untuk string dapat dibuat dengan menggunakan filter ini.

'something'|md5

itu ditampilkan sebagai -

437b930db84b8079c2dd804a71936b5f
12

Monthize

Dengan menggunakan filter Monthize, kita dapat mengonversi bilangan bulat hari menjadi jumlah bulan.

'61'|monthize

itu ditampilkan sebagai -

2
13

Nice Time

Dengan menggunakan filter Nice Time, kita bisa mendapatkan tanggal dalam format waktu yang dapat dibaca manusia sebagai keluaran.

page.date|nicetime(false)

itu ditampilkan sebagai -

3 hrs ago
14

Ordinalize

Ordinals (seperti 1 st , 2 nd , 3 rd ) dapat diberikan ke integer dengan menggunakan filter Ordinalize.

'78'| ordinalize

itu ditampilkan sebagai -

78th
15

Pluralize

Sebuah string dapat diubah menjadi bentuk jamak bahasa Inggris dengan menggunakan filter Pluralize.

'child'|pluralize

itu ditampilkan sebagai -

children
16

Randomize

Filter ini membantu mengacak daftar yang disediakan. Jika parameter berisi nilai apa pun maka nilai tersebut dilewati dari pengacakan.

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

itu ditampilkan sebagai -

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

Right Trim

Ini sangat mirip dengan trim kiri kecuali menghapus spasi putih dan karakter yang cocok dari sisi kanan string.

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

itu ditampilkan sebagai -

/strip/leading/slash
18

Singularize

Sebuah string dapat diubah ke versi tunggal bahasa Inggris dengan menggunakan filter Singular.

'vehicles'|singularize

itu ditampilkan sebagai -

vehicle
19

Safe Email

Filter Email Aman digunakan untuk mengubah alamat email menjadi karakter ASCII sehingga email lebih sulit untuk di-spam.

"[email protected]"|safe_email

outputnya adalah -

[email protected]
20

SortByKey

Ini digunakan untuk mengurutkan peta array menggunakan kunci.

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

itu menampilkan -

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

Starts-With

Anda dapat menentukan apakah sebuah string dimulai dengan string tertentu menggunakan filter Mulai-Dengan.

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

outputnya adalah -

true
22

Translate

untuk informasi lebih detail.

MY_LANGUAGE_KEY_STRING

itu menampilkan -

'Some text in English'
23

Translate Admin

Ini menerjemahkan string ke dalam bahasa saat ini yang diatur di user.yaml mengajukan.

24

Titleize

Sebuah string diubah menjadi format Title Case dengan menggunakan Titleize.

'welcome page'|titleize

itu ditampilkan sebagai -

Welcome Page
25

UnderScoreize

format dengan menggunakan filter UnderScoreize.

'ContactUs'|underscorize

itu diubah menjadi -

contact_us
26

Truncate a string

Anda dapat menggunakan Truncate untuk memotong string atau memperpendek string, Anda harus menentukan jumlah karakter.

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

itu terpotong menjadi -

one s...

Kamu dapat memakai true sebagai parameter jika Anda tidak ingin memotong string ke akhir kalimat terdekat setelah jumlah karakter yang ditentukan.

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

itu terpotong menjadi -

one sentence
Anda juga dapat menghapus teks HTML, tetapi Anda harus menggunakan striptags filter sebelumnya truncate Saring.
'<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5)

itu ditampilkan sebagai -

one s

Fungsi Ranting

Twig Functions secara langsung dipanggil dengan melewatkan parameter. Tabel berikut mencantumkan fungsi -

Sr.No. Deskripsi fungsi Contoh
1

Array

Fungsi ini memberikan nilai ke array.

array(value)
2

Authorize

Fungsi ini membuat pengguna yang diautentikasi diberi otorisasi untuk melihat sumber daya dan menerima string izin atau larik string izin.

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

Dump

Ini menerima variabel ranting yang valid dan membuangnya ke panel debugger Grav. Namun, debugger harus diaktifkan untuk melihat nilai tab pesan.

dump(page.header)
4

Debug

Ini bekerja sama dengan fungsi dump ().

5

Gist

Fungsi ini membuat kode sematan Gist berdasarkan ID Github Gist.

6

Random String Generation

Fungsi ini akan membuat string acak dengan jumlah karakter yang ditentukan. String ini dapat digunakan sebagai id atau kunci unik.

generate_random_string(10)
7

Repeat

Fungsi ini akan mengulang string untuk jangka waktu tertentu.

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

String

Menghasilkan string acak dengan panjang karakter yang ditentukan.

ta (23)
9

Translate Array

Ini adalah fungsi yang terhubung dengan |ta Saring.

10

Url

Filter ini akan membuat URL dan juga akan mengubah aliran URL PHP menjadi sumber daya HTML yang valid. Jika URL tidak dapat diselesaikan, nilai default dapat diberikan.

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

Translate

Menggunakan filter Terjemahan, string diterjemahkan sebagai |t Saring.

t('SITE_NAME')

diterjemahkan ke -

Site Name