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}