Grav - ตัวกรองและฟังก์ชัน Twig

ในบทนี้เรามาศึกษาเกี่ยวกับ Twig Filters and Functions. ตัวกรองใช้เพื่อจัดรูปแบบข้อมูลตามที่คุณต้องการด้วยเอาต์พุตที่ต้องการเช่นกัน มีการใช้ฟังก์ชันเพื่อสร้างเนื้อหา

เทมเพลต Twig คือไฟล์ข้อความที่มีนิพจน์และตัวแปรที่ถูกแทนที่ด้วยค่า Twig ใช้แท็กสามประเภท

  • Output tags - ไวยากรณ์ต่อไปนี้ใช้เพื่อแสดงผลลัพธ์ของนิพจน์ที่ประเมินที่นี่

{{  Place Your Output Here  }}
  • Action Tags - ไวยากรณ์ต่อไปนี้ใช้เพื่อดำเนินการคำสั่งที่นี่

{%  executable statements are placed here  %}
  • Comment tags - ไวยากรณ์ต่อไปนี้ใช้เพื่อเขียนข้อคิดเห็นในไฟล์เทมเพลต Twig

{#  write your comment here  #}

ทวิกฟิลเตอร์

Twig Filters ใช้ไฟล์ |อักขระเพื่อใช้ตัวกรองกับตัวแปร Twig ตามด้วยชื่อตัวกรอง อาร์กิวเมนต์สามารถส่งผ่านในวงเล็บได้เช่นเดียวกับฟังก์ชัน Twig

ตารางต่อไปนี้แสดง Twig Filters ที่ใช้ใน Grav -

ซีเนียร์ ตัวกรองและคำอธิบาย ตัวอย่าง
1

Absolute URL

ใช้เส้นทางสัมพัทธ์และแปลงเป็น URL ที่สมบูรณ์

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

แปลงเป็น -

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

Camelize

จะแปลงสตริงเป็นรูปแบบ CamelCase

'contact_us'| camelize

แปลงเป็น -

ContactUs
3

Contains

หากพบสตริง

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

ผลลัพธ์คือ -

1
4

Defined

คุณสามารถตรวจสอบได้ว่ามีการกำหนดตัวแปรไว้หรือไม่ หากไม่ได้กำหนดตัวแปรคุณสามารถระบุค่าเริ่มต้นได้

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

มันตั้งค่า header_image_width ด้วยค่า 900 หากไม่ได้กำหนดไว้

5

Ends-With

คุณสามารถกำหนดได้ว่าสตริงจะลงท้ายด้วยสตริงที่กำหนดหรือไม่โดยใช้ตัวกรอง Ends-With

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

จะแสดงเป็น -

True
6

FieldName

กรองชื่อฟิลด์โดยเปลี่ยนจุดเป็นสัญกรณ์อาร์เรย์

'field.name'|fieldName

จะแสดงเป็น -

field[name]
7

Humanize

ใช้เพื่อแปลงสตริงเป็นรูปแบบที่มนุษย์อ่านได้

'some_text_to_read'|humanize

จะแสดงเป็น -

Some text to read
8

Ksort

จัดเรียงแผนที่อาร์เรย์โดยใช้คีย์

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

จะแสดงเป็น -

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

Left Trim

ใช้เพื่อลบช่องว่างสีขาวที่จุดเริ่มต้นของสตริงและลบอักขระที่ตรงกันที่กำหนดจากด้านซ้ายของสตริง

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

จะแสดงเป็น -

strip/leading/slash/
10

Markdown

ใช้เพื่อแปลงสตริงที่มี markdown เป็น HTML โดยใช้ตัวแยกวิเคราะห์ markdown ของ Grav

'## some text with markdown'|markdown

จะแสดงเป็น -

some text with markdown

11

MD5

สามารถสร้างแฮช md5 สำหรับสตริงได้โดยใช้ตัวกรองนี้

'something'|md5

จะแสดงเป็น -

437b930db84b8079c2dd804a71936b5f
12

Monthize

ด้วยการใช้ตัวกรอง Monthize เราสามารถแปลงจำนวนวันจำนวนเต็มเป็นจำนวนเดือนได้

'61'|monthize

จะแสดงเป็น -

2
13

Nice Time

ด้วยการใช้ตัวกรอง Nice Time เราจะได้วันที่ในรูปแบบเวลาที่มนุษย์สามารถอ่านได้ดีเป็นผลลัพธ์

page.date|nicetime(false)

จะแสดงเป็น -

3 hrs ago
14

Ordinalize

สามารถกำหนดลำดับ (เช่น 1 st , 2 nd , 3 rd ) ให้กับจำนวนเต็มโดยใช้ตัวกรอง Ordinalize

'78'| ordinalize

จะแสดงเป็น -

78th
15

Pluralize

สตริงสามารถแปลงเป็นรูปพหูพจน์ภาษาอังกฤษได้โดยใช้ตัวกรองพหูพจน์

'child'|pluralize

จะแสดงเป็น -

children
16

Randomize

ตัวกรองนี้ช่วยสุ่มรายการที่ให้มา หากพารามิเตอร์มีค่าใด ๆ ค่าเหล่านั้นจะถูกข้ามจากการสุ่ม

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

จะแสดงเป็น -

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

Right Trim

มันค่อนข้างคล้ายกับการตัดแต่งด้านซ้ายยกเว้นว่าจะลบช่องว่างและอักขระที่ตรงกันจากด้านขวาของสตริง

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

จะแสดงเป็น -

/strip/leading/slash
18

Singularize

สตริงสามารถแปลงเป็นเวอร์ชันเอกพจน์ภาษาอังกฤษได้โดยใช้ตัวกรอง Singular

'vehicles'|singularize

จะแสดงเป็น -

vehicle
19

Safe Email

ตัวกรองอีเมลปลอดภัยใช้ในการแปลงที่อยู่อีเมลเป็นอักขระ ASCII เพื่อให้อีเมลถูกส่งสแปมได้ยากขึ้น

"[email protected]"|safe_email

ผลลัพธ์คือ -

[email protected]
20

SortByKey

ใช้เพื่อจัดเรียงแผนที่อาร์เรย์โดยใช้ปุ่ม

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

มันแสดง -

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

Starts-With

คุณสามารถกำหนดได้ว่าสตริงเริ่มต้นด้วยสตริงที่กำหนดหรือไม่โดยใช้ตัวกรองเริ่มต้นด้วย

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

ผลลัพธ์คือ -

true
22

Translate

สำหรับข้อมูลเพิ่มเติม

MY_LANGUAGE_KEY_STRING

มันแสดง -

'Some text in English'
23

Translate Admin

แปลสตริงเป็นภาษาปัจจุบันซึ่งตั้งค่าไว้ในไฟล์ user.yaml ไฟล์.

24

Titleize

สตริงถูกแปลงเป็นรูปแบบ Title Case โดยใช้ Titleize

'welcome page'|titleize

จะแสดงเป็น -

Welcome Page
25

UnderScoreize

จัดรูปแบบโดยใช้ตัวกรอง UnderScoreize

'ContactUs'|underscorize

มันถูกแปลงเป็น -

contact_us
26

Truncate a string

คุณสามารถใช้ Truncate เพื่อตัดสตริงหรือทำให้สตริงสั้นลงคุณต้องระบุจำนวนอักขระ

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

มันตัดเป็น -

one s...

คุณสามารถใช้ได้ true เป็นพารามิเตอร์หากคุณไม่ต้องการตัดทอนสตริงให้ใกล้เคียงที่สุดท้ายประโยคหลังจำนวนอักขระที่กำหนด

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

มันตัดเป็น -

one sentence
คุณยังสามารถตัดข้อความ HTML ได้ แต่คุณควรใช้ striptags กรองก่อน truncate กรอง.
'<p>one <strong>sentence<strong>. two sentences</p>'|striptags|truncate(5)

จะแสดงเป็น -

one s

ฟังก์ชั่น Twig

ฟังก์ชัน Twig ถูกเรียกโดยตรงโดยการส่งผ่านพารามิเตอร์ ตารางต่อไปนี้แสดงรายการฟังก์ชัน -

ซีเนียร์ ฟังก์ชั่นและคำอธิบาย ตัวอย่าง
1

Array

ฟังก์ชันนี้ส่งค่าไปยังอาร์เรย์

array(value)
2

Authorize

ฟังก์ชันนี้ทำให้ผู้ใช้ที่พิสูจน์ตัวตนได้รับอนุญาตให้ดูทรัพยากรและยอมรับสตริงสิทธิ์หรืออาร์เรย์ของสตริงสิทธิ์

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

Dump

ยอมรับตัวแปร twig ที่ถูกต้องและทิ้งลงในแผงดีบักเกอร์ Grav อย่างไรก็ตามควรเปิดใช้ดีบักเกอร์เพื่อดูค่าแท็บข้อความ

dump(page.header)
4

Debug

ใช้งานได้เช่นเดียวกับฟังก์ชัน dump ()

5

Gist

ฟังก์ชันนี้จะสร้างโค้ดฝัง Gist ตาม Github Gist ID

6

Random String Generation

ฟังก์ชันนี้จะสร้างสตริงแบบสุ่มที่มีจำนวนอักขระที่ระบุ สตริงเหล่านี้สามารถใช้เป็นรหัสหรือคีย์เฉพาะ

generate_random_string(10)
7

Repeat

ฟังก์ชันนี้จะทำซ้ำสตริงตามระยะเวลาที่กำหนด

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

String

สร้างสตริงสุ่มตามความยาวอักขระที่ระบุ

ta (23)
9

Translate Array

เป็นฟังก์ชันที่เชื่อมต่อกับ |ta กรอง.

10

Url

ตัวกรองนี้จะสร้าง URL และจะแปลงสตรีม URL ของ PHP เป็นทรัพยากร HTML ที่ถูกต้อง หากไม่สามารถแก้ไข URL ได้จะสามารถส่งผ่านค่าเริ่มต้นได้

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

Translate

เมื่อใช้ตัวกรองการแปลสตริงจะถูกแปลเป็นไฟล์ |t กรอง.

t('SITE_NAME')

แปลเป็น -

Site Name