2010-01-21

Cơ bản về xtemplate

1/21/2010 10:34:00 AM Posted by Hoàng Dũng No comments
Bài 1: Cơ bản về Xtemplate
Các bạn có thể xem và download xtemplate tại địa chỉ:
http://www.phpxtemplate.org.
Xtemplate được nhận biết bằng các Block. Và block lớn nhất thường đặt là main. Các block được bắt đầu và kết thúc bởi các cặp comment.
Template: ( templ.tpl )
Quote:
Trong đó xxxx là biến
VD:
Quote:

Vi du

{vidu}


Code PHP:
Trong PHP Code thì Xtemplate sẽ được viết như sau:
PHP Code:
include_once('./xtemplate.class.php');
$xtpl = new XTemplate('templ.tpl');
//Gán giá trị
$xtpl->assign('vidu'"Vi du ve Xtemplate");
//Không biết dịch từ này thế nào, nhưng tạm hiểu là in giá trị của 1 block.
$xtpl->parse('main');
//In ra
$xtpl->out('main');
//(2 cái cuối chả bik dịch thế nào, thôi thì bik thế đã [%3AD] )
?>

Chú ý hàm parse:
Parse phải được viết theo thứ tự của block và cách nhau bởi dấu chấm.
VD ngoài cùng là main, tiếp theo là block1,block2,block3 thì sẽ viết như thế này:
PHP Code:
//...
$xtpl->parse('main.block1.block2.block3');
//...
?>


Quote:assign(Biến cần gán giá trị,giá trị cần gán)
parse(tên của block)

Bài 2: Mảng giá trị
(chú ý: Trong bài này mình sẽ bỏ bớt những phần khai báo ở bài trước. )
Bạn khai báo 1 mảng trong PHP
PHP Code:
...
$mang = array(
        
'id'=>"1",
        
'ten'=>"TK",
        
'tuoi'=>"21"
        
);
//Gán giá trị của mảng vào DATA
$xtpl->assign('DATA',$mang);
$xtpl->parse('main. table');
...
?>

Template:

Quote:...

id
{DATA.id}
Tên
{DATA.ten#Bạn có thể comment ở đây}
Tuổi
{DATA.tuoi}


...

Chú ý: Trong Xtemplate bạn có thể sử dụng Comment bằng cách thêm dấu # như ở VD trên.

Bài 3: Vòng lặp
Trong Xtemplate có 1 cái mình thấy khá là thú vị, đó là mình có thể lặp 1 block bằng PHP. VD:
PHP Code:
...
for(
$i=0;$i<10;$i++){
    
$xtpl->parse('main.loop');
}
...
?>

Template:

Quote:...
Ví dụ về lặp 1 block

Hehe ta se lap cai nay


...

Bạn cũng có thể in lại nhiều lần 1 block bằng cách parse nhiều lần. VD:
PHP Code:
...
$xtpl->parse('main.loop');
$xtpl->parse('main.loop');
$xtpl->parse('main.loop');
$xtpl->parse('main.loop');
...
?>

Bạn có thể thay đổi biến rồi parse ra.VD:
PHP Code:
...
$xtpl->assgin('vd',"hello, i'm TK")
$xtpl->parse('main.loop');
$xtpl->assgin('vd',"Welcome to xtemplate")
$xtpl->parse('main.loop');
$xtpl->assgin('vd',"Xtemplate so easy!")
$xtpl->parse('main.loop');
...
?>

Template:
Quote:...
Ví dụ về lặp 1 block

{vd}


...

Bài 4: Đặt giá trị cho toàn bộ block.
Đến đây mình bắt đầu thấy khá thích cái Xtemplate rồi đấy. Big Grin bạn có thể đặt giá trị cho tất cả các biến trong block. VD:
Template

Quote:...








...
PHP Code:
PHP Code:
...
    
$xtpl->set_null_string('no value..');
    
$xtpl->set_null_string('no email specified!''EMAIL');
    
$xtpl->parse('main.form');
...
?>

Như vậy với ví dụ trên thì chỉ có {EMAIL} là được gán giá trị, còn lại sẽ được gán bằng giá trị đã khai báo ở trên. ( trong ví dụ là: no value... )
Hàm set_null_string:

Quote:set_null_string(giá trị cần gán,[biến cần gán]);

Bài 5: block con và gán giá trị cho block.
Trong 1 block bạn có thể khai báo các block con.
VD:

Quote:...

Block o day

Noi dung cua subblock1



Noi dung cua subblock2



...

Nếu bạn không parse các subblock thì chúng sẽ không được in ra.
VD:
PHP Code:
...
$xtpl->parse('main.block');
...
?>

Khi in ra sẽ chỉ có chữ: Block ở đây. Nếu muốn các block kia được in ra bạn phải parse chúng:
PHP Code:
...
$xtpl->parse('main.block');
$xtpl->parse('main.block.subblock1');
$xtpl->parse('main.block.subblock2');
...
?>


Gán giá trị cho 1 block.

Quote:set_null_block(giá trị cần gán,[tên block cần gán]);

VD:
PHP Code:
...
$xtpl->set_null_block('block con!');
    
$xtpl->set_null_block('Block1!''main.block.subblock1');
    
$xtpl->parse('main.block');
...
?>

Template:
Quote:...


blog con 1


blog con 2

....

..

Khi chạy subblock1 sẽ được in ra dòng chữ: Block1
Còn subblock2 và tất cả các sublock trong block sẽ được in ra dòng chữ: block con

Bài 6: Include 1 file.
Để chèn 1 file vào template mà không cần thông qua PHP ta sẽ sử dụng hàm sau:
Quote:{FILE "file cần chèn"}


Có lẽ mình chỉ hướng dẫn tới đây thôi. Còn lại các bạn tự tìm hiểu nhé!
Tài liệu tham khảo:
- Document của Xtemplate
Mọi thắc mắc xin post luôn tại topic này nhé, tớ sẽ trả lời các bạn Big Grin

Tác giả: TK
Website: phpbasic.com

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.