Hiển thị các bài đăng có nhãn Volt Template. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Volt Template. Hiển thị tất cả bài đăng

Thứ Hai, 26 tháng 10, 2020

Bài 4- Volt Filter -phalcon

 1/ Volt Filter

Đây cũng là một bộ lọc giống như phần Filter ở bài 3 , tuy nhiên có bổ sung thêm một số phương thức mới để áp dụng vào ứng dụng.

Danh sách các Filter (P1)

  • Striptags: Loại bỏ các thẻ HTML
  • Slashed: Thêm các ký tự \ vào trước các nháy đơn, nháy đôi.
  • Stripslashed: Hiển thị chuỗi không có các ký tự gạch chéo được tạo bằng pt slashed.
  • Capitalize: Chuyển các ký tự đầu tiên trong chuỗi thành chữ in hoa.

Filter striptags :

{{ ‘

This is filter striptags

‘ | striptags }}   {# This is filter striptags #}


Filter slashes :

{{ ” this ‘is fi’lter sl\ashes ” | slashes}}                    {# this \’is fi\’lter sl\\ashes #}


Filter stripslashes :

{{ ” this ‘is fi’lter sl\ashes ” | slashes | stripslashes }}          {# this ‘is fi’lter sl\ashes #}


Filter capitalize :

{{ ” this is filter capitalize ” | capitalize  }}         {# This Is Filter Capitalize #}


Danh sách các Filter (P2)

 

  • Lower: Chuyển đổi ký tự viết hoa thành viết thường.
  • Upper: Chuyển đổi ký tự viết thường thành viết hoa.
  • Length: Trả về số ký tự có trong chuỗi hoặc là số phần tử có trong mảng.
  • Abs: Trả về giá trị tuyệt đối của một số.

Filter lower :

{{ “thIs is fiLTEr lowEr” | lower  }}         {# this is filter lower #}


Filter upper :
{{ “thIs is fiLTEr UppEr” | upper  }}         {# THIS IS FILTER UPPER #}


Filter length :

{{ “this is filter length”  | length }}         {# 21 #}


Filter abs :
{{ (-123) | abs }}                           {# 123 #}


Danh sách các Filter (P3)

 

  • Trim: Xóa bỏ khoảng cách dư thừa ở hai bên chuỗi.
  • Left_trim: Xóa bỏ khoảng cách dư thừa ở bên trái chuỗi.
  • Right_trim: Xóa bỏ khoảng cách dư thừa ở bên phải chuỗi.
  • Convert_encoding: Chuyển đổi kiểu charset khác.

Filter trim :

input :  {{ ”   hello   ” }}   — length : {{ ”   hello   ” | length }}

output : {{ ”   hello   ” }}   — length : {{ ”   hello   ” | trim | length }}


Filter left_trim :
input :  {{ ”   hello   ” }}   — length : {{ ”   hello   ” | length }}
output : {{ ”   hello   ” }}   — length : {{ ”   hello   ” | left_trim | length }}


Filter right_trim :
input :  {{ ”   hello   ” }}   — length : {{ ”   hello   ” | length }}
output : {{ ”   hello   ” }}   — length : {{ ”   hello   ” | right_trim | length }}


Filter convert_encoding :

input  :  {{ “xin chào ” }}

output :  {{ “xin chào ” | convert_encoding(‘bakfal’,’utf8′) }}


 Danh sách các Filter (P4)

  • Default: Thiết lập giá trị mặc định cho biến rỗng.
  • Format: Chức năng tương tự như hàm sprintf của PHP
  • url_encode: Chức năng tương tự như hàm urlencode trong PHP.

Filter default :

{% set var_default = ‘abc’ | default(‘default value’) %}

var_default : {{ var_default }}


Filter format :

{{ “his name is %s, he is %d years old” | format(“peter”, 20) }}

{# his name is peter, he is 20 years old #}


Filter url_encode :

{{ “điện thoại di động” | url_encode }}


Danh sách các Filter (P5)

 

  • Sort: Sắp xếp mảng theo thứ tự tăng dần , chức năng tương tự hàm asort.
  • Keys: Tạo mảng liên tục với phần từ là value được lấy từ mảng ban đầu.
  • Join: Tạo ra một chuỗi bằng cách kết hợp các mảng lại với nhau.
  • Json_encode: Chuyển đổi mảng thành một chuỗi json.
  • Json_decode: Chuyển đổi chuỗi json trở thành mảng.

{% set arr_sort  = [‘peter’:30, ‘nam’:20, ‘mary’:10, ‘luna’: 60] %}

{% set arr_sort2 = arr_sort | sort  %}

Before sort
{% for key, value in arr_sort %}
{{ key }} — {{ value }}
{% endfor %}


After sort
{% for key, value in arr_sort2 %}
{{ key }} — {{ value }}
{% endfor %}
{% set arr_keys   = [‘peter’:30, ‘nam’:20, ‘mary’:10, ‘luna’: 60] %}
{% set arr_keys2  = arr_keys | keys %}
Before filter keys
{% for key, value in arr_keys %}
{{ key }} — {{ value }}
{% endfor %}


After filter keys

{% for key, value in arr_keys2 %}

{{ key }} — {{ value }}

{% endfor %}


{% set arr_join   = [‘peter’:30, ‘nam’:20, ‘mary’:10, ‘luna’: 60] %}

{% set str_join   = arr_join | join(‘ ‘) %}

{# 30 20 10 60 #}

Before filter join

{% for key, value in arr_join %}

{{ key }} — {{ value }}

{% endfor %}


{{ str_join }}

{% set arr_example   = [‘peter’:30, ‘nam’:20, ‘mary’:10, ‘luna’: 60]%}

{% set str_json      = arr_example | json_encode %}

{% set arr_json      = str_json | json_decode %}

arr_example

{% for key, value in arr_example %}

{{ key }} — {{ value }}

{% endfor %}

https://cunghoclaptrinhsite.wordpress.com/2017/05/29/4-volt-filter-phalcon/

Bài 3-Volt template escaper

 volt

Volt Escaper

Escaper sẽ cung cấp các phương thức khi các bạn xuất dữ liệu ra ngoài file.

Cú pháp:

{{ ‘

Escape e

‘ | e }}

Tham số đầu tiên chính là chuỗi ký tự html cần lọc, sau đó thực hiên thêm dấu | để truyền vào tham số thứ 2 chính là tên các phương thức escaper.

Để ghi chú trong Volt Template thì chúng ta có cú pháp như sau.

{#

Escape e

#}
Escape e:
{{ ‘

Escape e

‘ | e }}                   {#

Escapee

#}


Escape escape:
{{ ‘

Escape escape

‘ | escape  }}        {#

Escapeescape

#}


Escape attribute:
” {{  ‘”>Attack attribute html
‘ | escape_attr }} “>
Attack attribute html


Escape css:
alert(1)“#’ | escape_css}}”>escape css


Escape escape_js:
document.title =  ‘{{ “‘; alert(100); var x='” | escape_js }}’

Nếu bạn có bất cứ vấn đề nào vui lòng để lại comment

Bài 2- Thao tác với mảng -Volt template phalcon

 Phần tiếp theo  chúng ta sẽ cùng tìm hiểu thao tác về mảng trong phalcon.

1/ Thao tác với mảng

Khai báo và in mảng

Cú pháp:

{%  set colors = [‘red’:’màu đỏ’, ‘green’:’màu xanh lá’, ‘blue’: ‘màu xanh dương’] %}

Hiển thị mảng:

red     = {{ colors[‘red’] }}

green   = {{ colors[‘green’] }}

blue    = {{ colors[‘blue’] }}

For Loop

{%  set colors   = [‘red’:’màu đỏ’, ‘green’:’màu xanh lá’, ‘blue’: ‘màu xanh dương’] %}

Thực hiện vòng lặp:

{% for key, value in colors %}

{{ key }} — {{ value }}

{% endfor %}

Cú pháp hơi ngược xíu so với vòng lặp foreach trong PHP, key, value được khai báo đầu tiên rồi mới tới tên biến đang hứng mảng tham số.

Vòng lặp kết hợp với câu điều kiện

{%  set numbers  = [‘one’:1, ‘two’:2, ‘three’: 3, ‘four’:4] %}

{% for key, value in numbers if value > 2 %}

{{ key }} — {{ value }}

{% endfor %}

Break & Contiune

 

Tạo một mảng liên tục từ 0-100 bằng cách bắt đầu từ số 0..100, sử dụng vòng lặp và kèm câu điều kiện nếu phần tử key lớn hơn 10 thì sẽ dừng và end if luôn, tiếp tục gọi tới if và với điều kiện là nếu chia hết cho 2 và khác 0 thì tiếp tục lặp.

{%  set arr = 0..100 %}

{%  for key, value in arr %}

{% if key > 10 %}

{% break %}

{% endif %}

{% if key % 2 != 0 %}

{% continue %}

{% endif %}

{{ key }}   —  {{ value }}

{%  endfor %}

Loop Index

Chỉ số vòng lặp hiên taị bắt đầu từ 1 đối với loop.index, chỉ số vòng lặp sẽ bắt đầu từ số 0 đối với loop.index0. Còn đối với loop.revindex & loop.revindex0 thì ngược lại.

{%  set colors = [‘red’:’màu đỏ’, ‘green’:’màu xanh lá’, ‘blue’: ‘màu xanh dương’, ‘yellow’:’màu vàng’] %}

{% for key,value in  colors %}

{{loop.index}} — {{ loop.index0 }} — {{loop.revindex}} — {{ loop.revindex0 }}

{% endfor %}

Loop.Length

Trả về số phần tử có trong mảng.

{%  set number = 1..2 %}

{% for key,value in  number %}

{% if loop.length > 3 %}

{{key}}–{{value}}

{% else %}

mảng có ít hơn 3 phần tử

{% break %}

{% endif %}

{% endfor %}

Loop.first & Loop.last

Vòng lặp duyệt qua phần tử đầu tiên và cuối cùng của mảng.

Cú pháp

{%  set colors = [‘red’:’màu đỏ’, ‘green’:’màu xanh lá’, ‘blue’: ‘màu xanh dương’, ‘yellow’:’màu vàng’] %}

{% for key,value in  colors %}

{% if loop.first == 1%}

{{key}} — {{ value }}

{% endif %}

{% if loop.last == 1%}

{{key}} — {{ value }}

{% endif %}

{% endfor %}

https://cunghoclaptrinhsite.wordpress.com/2017/05/29/2-thao-tac-voi-mang-phalcon/

Bài 1 -Volt Template Engine Phalcon

 Bạn đã từng nghe qua Volt template ?Hôm nay tôi sẽ giới thiệu cho bạn về volt templete .

Volt là 1 templating language siêu nhanh và thiết kế thân thiện được viết bởi C cho PHP. Volt được tích hợp mạnh mẽ với các component khác của Phalcon, cũng giống như bạn có thể sử dụng nó như một component độc lập trong các ứng dụng của mình.
Volt được lấy cảm hứng từ Jinja, ban đầu được tạo ra bởi Armin Ronacher. Do đó, nhiều developer sẽ thấy nhiều điểm tương đồng giữa 2 template engine này.
Volt view được biên dịch thành mã PHP thuần, vì vậy, về cơ bản, chúng lưu giữ được những hiệu quả của việc viết code PHP thủ công:

Sau đây chúng ta sẽ bắt đầu tìm hiểu rõ hơn .

1/ Thao tác với biến

Volt template là một thư viện góp phần tạo nên sức mạnh cho Phalcon, với việc rút ngắn các mã nguồn, không sử dụng mã PHP nhiều ở trong các file xử lý giao diện.

Register Volt Engine

Để sử dụng được Template engine thì cần phải đăng ký ở file

Module.php.
$dependencyInjector->set(‘view’, function (){
$view = new \Phalcon\Mvc\View();
$view->setViewsDir(APP_PATH. ‘/chapter05/views’);
$view->registerEngines([
‘.volt’ => ‘\Phalcon\Mvc\View\Engine\Volt’
]);
return $view;
});

Mảng tham số sẽ bao gồm phần tử key chính là tên prefix mà bạn đặt, còn giá trị của nó sẽ gọi tới đối tượng Volt Engine.

Khai báo và in biến
{% Ten_Bien = ‘’ %}

Hiển thị kết quả bằng cú pháp {{ Ten_Bien }}

Ví dụ:
{% set website = ‘zend.vn‘ %}
{{ website }}
Toán tử và số học
 
Cộng, trừ , nhân , chia, số dư, cách khai báo biến như các trên và cú pháp để thực hiện toán tử như sau.
{% set num1 = 100 %}
{% set num2 = 20 %}
cộng =  {{ num1 + num2 }}
{# 120 #}
trừ  =  {{ num1 – num2 }}
{# 80 #}
nhân =  {{ num1 * num2 }}
{# 2000 #}
chia =  {{ num1 / num2 }}
{# 5 #}
dư   =  {{ num1 % num2 }}
{# 0 #}
Toán tử gán
Đây là phép toán tử khá quen thuộc với các bạn.
 
{% set x = 5 %}
{% set x += 5 %}
{% set y = 25 %}
{% set y -= 10 %}
{% set z = 20 %}
{% set z *= 10 %}
{% set t = 100 %}
{% set t /= 10 %}
{% set w = 5 %}
{% set w = w % 2 %}
x = {{ x }}

y = {{ y }}

z = {{ z }}

t = {{ t }}

w = {{ w }}

Toán tử so sánh
 
{% set x = 30 %}
{% set y = 10 %}
x > y :    {{ x > y }}

x < y :    {{ x < y }}

x <> y :   {{ x <> y }}

x != y :   {{ x != y }}

x == y :   {{ x == y }}

x === y :  {{ x === y }}

x !== y :  {{ x !== y }}

x <= y :  {{ x <= y }} x >= y :  {{ x >= y }}

Toán tử logic
 
{% set x = 20 %}
{% set y = 15 %}
input : x = {{ x }} ||| y = {{ y }}
(x > 1 and y > 5) : {{ x > 1 and y > 5 }}
{# true #}
(x > 1 or y < 5)  : {{ x > 1 or y > 5 }}
{# true #}
(not 0)           : {{ not 0 }}
{# true #}
Toán tử điều kiện
 Cú pháp if else giống như php.
{% if number % 2 == 0 %}
đây là số chẳn
{% else %}
đây là số lẽ
{% endif %}
{% if number > 10  %}
đây là số lớn hơn 10
{% elseif number < 10 %} đây là số nhỏ hơn 10 {% else %} đây là số 10 {% endif %} {{ (number >= 0) ? ‘đây là số dương’ : ‘đây là số âm’ }}
Các kiểu check Method
 

Volt cung cấp cho chúng ta một số hàm dùng để kiểm tra các vấn đề như là biến có tồn tại hay không, kiểm tra biến có rỗng không, và kiểm tra kiểu của biến và một số giá trị khác.

Check empty:
{% set var1 = 0 %}
var1 = {{ var1 }}

Check empty:
{% if var1 is empty %}
đây là một biến rỗng
{% else %}
đây không là một biến rỗng
{% endif %}
Check defined:
{% set var2 = ‘abc’ %}

var2 = {{ var2 }}

Check defined:

{% if var22 is defined %}

variable is defined

{% else %}

not defined

{% endif %}
Check even, odd:
{% set var3 = 10 %}
var3 = {{ var3 }}

Check even – odd:
{% if var3 is even %}
đây là số chẵn
{% elseif var3 is odd %}
đây là số lẻ
{% endif %}
Check numeric:

{% set var4 = ‘abc10’ %}

var4 = {{ var4 }}

Check numeric

{% if var4 is numeric %}

đây là một số

{% else %}

đây không là một số

{% endif %}
Check sameas:
{% set var5 = ‘hellos’ %}
var5 = {{ var5 }}

Check sameas
{% if var5 is sameas(‘hello’) %}
same value
{% else %}
not same value
{% endif %}
Check type:
 
{% set var6 = true %}
var6 = {{ var6 }}

Check type
{% if var6 is type(‘string’) %}
đây là định dạng kiểu chuỗi
{% elseif var6 is type(‘boolean’) %}
đây là định dạng kiểu logic
{% elseif var6 is type(‘integer’) %}
đây là định dạng kiểu số nguyên
{% endif %}
Check scalar:
 
{% set var7 = [] %}
var7 = {{ var7 }}

Check scalar
{% if var7 is scalar %}

đây là định dạng thuộc về tập hợp kiểu chuỗi, kiểu số nguyên, kiểu số thập phân, kiểu logic
{% else %}

đây không là định dạng kiểu scalar

{% endif %}

https://cunghoclaptrinhsite.wordpress.com/2017/05/29/volt-template-engine-bien-phalcon/

Bài 4- Volt Filter -phalcon

  1/ Volt Filter Đây cũng là một bộ lọc giống như phần Filter ở bài 3 , tuy nhiên có bổ sung thêm một số phương thức mới để áp dụng vào ứng ...