01/10/2018, 16:49

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 dungSmarty
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}
0