Grav - Bộ lọc và Chức năng Twig

Trong chương này, chúng ta hãy nghiên cứu về Twig Filters and Functions. Bộ lọc cũng được sử dụng để định dạng dữ liệu theo cách bạn muốn với đầu ra bắt buộc. Các hàm được sử dụng để tạo nội dung.

Mẫu cành cây là các tệp văn bản chứa các biểu thức và biến được thay thế bằng các giá trị. Twig sử dụng ba loại thẻ.

  • Output tags - Cú pháp sau được sử dụng để hiển thị kết quả biểu thức đã đánh giá ở đây.

{{  Place Your Output Here  }}
  • Action Tags - Cú pháp sau được sử dụng để thực hiện các câu lệnh ở đây.

{%  executable statements are placed here  %}
  • Comment tags - Cú pháp sau được sử dụng để viết bình luận trong tệp mẫu Twig.

{#  write your comment here  #}

Bộ lọc cành cây

Bộ lọc Twig sử dụng |để áp dụng bộ lọc cho biến Twig theo sau là tên bộ lọc. Các đối số có thể được chuyển trong ngoặc đơn tương tự như các hàm Twig.

Bảng sau đây cho thấy Bộ lọc Twig được sử dụng trong Grav -

Sr.No. Bộ lọc & Mô tả Thí dụ
1

Absolute URL

Nó lấy đường dẫn tương đối và chuyển nó thành URL tuyệt đối.

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

chuyển đổi thành -

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

Camelize

Nó chuyển đổi một chuỗi sang định dạng CamelCase.

'contact_us'| camelize

chuyển đổi thành -

ContactUs
3

Contains

nếu nó tìm thấy chuỗi.

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

đầu ra là -

1
4

Defined

Bạn có thể kiểm tra xem một số biến có được xác định hay không. Nếu biến không được xác định, bạn có thể cung cấp giá trị mặc định.

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

Nó thiết lập header_image_width với giá trị 900 nếu nó không được xác định.

5

Ends-With

Bạn có thể xác định xem một chuỗi có kết thúc bằng một chuỗi nhất định hay không bằng cách sử dụng bộ lọc Kết thúc bằng.

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

nó được hiển thị là -

True
6

FieldName

Nó lọc tên trường bằng cách thay đổi dấu chấm thành ký hiệu mảng.

'field.name'|fieldName

nó được hiển thị là -

field[name]
7

Humanize

Nó được sử dụng để chuyển đổi một chuỗi sang định dạng con người có thể đọc được.

'some_text_to_read'|humanize

nó được hiển thị là -

Some text to read
số 8

Ksort

Nó sắp xếp một bản đồ mảng bằng cách sử dụng phím.

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

nó được hiển thị là -

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

Left Trim

Nó được sử dụng để xóa khoảng trắng ở đầu chuỗi và xóa ký tự phù hợp được đưa ra từ phía bên trái của chuỗi.

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

nó được hiển thị là -

strip/leading/slash/
10

Markdown

Nó được sử dụng để chuyển đổi chuỗi chứa markdown thành HTML bằng cách sử dụng trình phân tích cú pháp đánh dấu của Grav.

'## some text with markdown'|markdown

nó được hiển thị là -

some text with markdown

11

MD5

Băm md5 cho chuỗi có thể được tạo bằng cách sử dụng bộ lọc này.

'something'|md5

nó được hiển thị là -

437b930db84b8079c2dd804a71936b5f
12

Monthize

Bằng cách sử dụng bộ lọc Monthize, chúng ta có thể chuyển đổi một số nguyên ngày thành số tháng.

'61'|monthize

nó được hiển thị là -

2
13

Nice Time

Bằng cách sử dụng bộ lọc Nice Time, chúng ta có thể lấy một ngày ở định dạng thời gian dễ đọc của con người dưới dạng đầu ra.

page.date|nicetime(false)

nó được hiển thị là -

3 hrs ago
14

Ordinalize

Ordinals (như 1 st , 2 nd , 3 thứ ) có thể được trao cho số nguyên bằng cách sử dụng Ordinalize lọc.

'78'| ordinalize

nó được hiển thị là -

78th
15

Pluralize

Một chuỗi có thể được chuyển đổi sang dạng tiếng Anh số nhiều của nó bằng cách sử dụng bộ lọc Đa phương tiện.

'child'|pluralize

nó được hiển thị là -

children
16

Randomize

Bộ lọc này giúp ngẫu nhiên hóa danh sách được cung cấp. Nếu tham số chứa bất kỳ giá trị nào thì các giá trị đó sẽ bị bỏ qua khỏi việc ngẫu nhiên hóa.

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

nó được hiển thị là -

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

Right Trim

Nó khá giống với left trim ngoại trừ nó loại bỏ khoảng trắng và ký tự phù hợp từ phía bên phải của chuỗi.

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

nó được hiển thị là -

/strip/leading/slash
18

Singularize

Một chuỗi có thể được chuyển đổi sang phiên bản số ít tiếng Anh bằng cách sử dụng bộ lọc Số ít.

'vehicles'|singularize

nó được hiển thị là -

vehicle
19

Safe Email

Bộ lọc Email an toàn được sử dụng để chuyển địa chỉ email thành các ký tự ASCII để email khó bị gửi thư rác hơn.

"[email protected]"|safe_email

đầu ra là -

[email protected]
20

SortByKey

Nó được sử dụng để sắp xếp bản đồ mảng bằng cách sử dụng các phím.

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

nó hiển thị -

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

Starts-With

Bạn có thể xác định xem một chuỗi có bắt đầu bằng một chuỗi nhất định hay không bằng cách sử dụng bộ lọc Starts-With.

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

đầu ra là -

true
22

Translate

để biết thêm thông tin chi tiết.

MY_LANGUAGE_KEY_STRING

nó hiển thị -

'Some text in English'
23

Translate Admin

Nó dịch một chuỗi thành ngôn ngữ hiện tại được đặt trong user.yaml tập tin.

24

Titleize

Một chuỗi được chuyển đổi thành định dạng Title Case bằng cách sử dụng Titleize.

'welcome page'|titleize

nó được hiển thị là -

Welcome Page
25

UnderScoreize

định dạng bằng cách sử dụng bộ lọc UnderScoreize.

'ContactUs'|underscorize

nó được chuyển đổi thành -

contact_us
26

Truncate a string

Bạn có thể sử dụng Truncate để cắt ngắn một chuỗi hoặc rút ngắn chuỗi, bạn phải chỉ định số ký tự.

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

nó cắt ngắn thành -

one s...

Bạn có thể dùng true dưới dạng tham số nếu bạn không muốn cắt ngắn chuỗi đến cuối câu gần nhất sau số ký tự đã cho.

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

nó cắt ngắn thành -

one sentence
Bạn cũng có thể tách văn bản HTML, nhưng bạn nên sử dụng striptags lọc trước truncate bộ lọc.
'<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5)

nó được hiển thị là -

one s

Chức năng cành cây

Các hàm Twig được gọi trực tiếp bằng cách truyền tham số. Bảng sau liệt kê các chức năng:

Sr.No. Mô tả chức năng Thí dụ
1

Array

Hàm này truyền một giá trị vào mảng.

array(value)
2

Authorize

Hàm này làm cho người dùng đã xác thực được ủy quyền để xem tài nguyên và chấp nhận chuỗi quyền hoặc mảng chuỗi quyền.

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

Dump

Nó chấp nhận một biến twig hợp lệ và đưa nó vào bảng gỡ lỗi Grav. Tuy nhiên, trình gỡ lỗi phải được bật để xem các giá trị tab thông báo.

dump(page.header)
4

Debug

Điều này hoạt động giống như hàm dump ().

5

Gist

Hàm này tạo mã nhúng Gist dựa trên ID Github Gist.

6

Random String Generation

Hàm này sẽ tạo một chuỗi ngẫu nhiên với số ký tự được chỉ định. Các chuỗi này có thể được sử dụng làm id hoặc khóa duy nhất.

generate_random_string(10)
7

Repeat

Hàm này sẽ lặp lại chuỗi trong khoảng thời gian nhất định.

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

String

Tạo một chuỗi ngẫu nhiên có độ dài ký tự được chỉ định.

ta (23)
9

Translate Array

Nó là một chức năng được kết nối với |ta bộ lọc.

10

Url

Bộ lọc này sẽ tạo một URL và nó cũng sẽ chuyển đổi các luồng URL PHP thành các tài nguyên HTML hợp lệ. Nếu URL không thể được giải quyết, một giá trị mặc định có thể được chuyển.

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

Translate

Sử dụng bộ lọc Dịch, một chuỗi được dịch là |t bộ lọc.

t('SITE_NAME')

được dịch sang -

Site Name