Bài 03: Một số cú pháp cơ bản trong Smarty
Smarty hỗ trợ một vài cú pháp lập trình nâng cao , bao gồm : Biến, hằng If, elseif, else Điều khiển luồng dữ liệu, foreach. Hàm do người dùng địnhn nghĩa . ... 1. Một số cú pháp cơ bản trong Smarty. Nội dung Smarty Mở và đóng thẻ {} Ghi chú {* ghi chú một hoặc nhiều ...
Smarty hỗ trợ một vài cú pháp lập trình nâng cao , bao gồm :
- Biến, hằng
- If, elseif, else
- Điều khiển luồng dữ liệu, foreach.
- Hàm do người dùng địnhn nghĩa .
- ...
1. Một số cú pháp cơ bản trong Smarty.
Nội dung | Smarty |
---|---|
Mở và đóng thẻ | {} |
Ghi chú | {* ghi chú một hoặc nhiều dòng*} |
Khai báo biến | {assgin var = ten_bien value = giá trị} |
Hiển thị biến | {$ten_bien} |
Hiển thị biến $_GET, $_POST, $_COOKIE, $_SESSION | {$smarty.get.page} {$smarty.post.page} {$smarty.cookies.username} {$smarty.session.id} |
Hiển thị giá trị một phần của mảng | {$ten_mang[vi_tri]} |
Duyệt mảng dùng vòng lặp foreach | {foeach ($ten_mang as $ten_phan_tu} ... {/endforeach} |
if | {if isset($foo) } ... {/if} |
Smarty cho phép bạn viết code PHP trong template với cặp thẻ {php}{/php}
Ví dụ:
{php} $name = "Nguyễn Văn A"; echo $name; {/php}
Để viết một khối mã Javascript(trừ việc khai báo biến) và CSS trong template bạn phải dùng cặp thẻ {literal} {/literal}.
Ví dụ:
{literal} // Javascript <script type="text/javascript"> alert("Xin chào các bạn"); </script> // CSS <style type="text/css"> a{ color:#C00000}; b{ color:#C00000}; </style> {/literal}
2. Caching - bộ nhờ đệm
- Bộ nhớ đệm được sử dụng để tăng tốc độ gọi display() hoặc fetch() bằng cách lưu output vào file.
- Nếu có một phiên bản được cache thì nó sẽ hiển thị thay vì regenerating.
- Caching có thể tăng tốc độ trang lên rất nhiều, đặc biệt ddooid với template có thời gian tính toán dài
- Lưu ý: template nào đang được cached và caching trong bao lâu.
- Vị dụ ta hiển thị home page mà không thay đổi nội dung thường xuyên thị ta có thể cache trong 1, 2 giờ hoặc lâu hơn. Nếu là trang tin tức thay đổi nội dung thường xuyên thì không nên dùng cache
2.1 Thiết lập cache
- Bằng cách đặt caching caching = 1 hoặc bằng 2
- Khi caching = 1
require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 1; $smarty->display('index.tpl');
- Khi caching = 2
require('Smarty.class.php'); $smarty = new Smarty; $smarty->caching = 2; // thiết lập cache chi trang index là 5 phút. $smarty->cache_lifetime = 300; $smarty->display('index.tpl');
3.Kế thừa template
Ta có trang home.tbl
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="awidth=device-awidth"> <title>{block name=title }Home Page{/block}</title> </head> <body> </body> </html>
page.tpl kế thừa home.tpl ta có block giống như một biến giữa block giá trị mặc định. Hàm kế thừa ta có thể thay đổi nội dung.
{extends file='Home.tpl"} {block name=title }My Page{/block}