III. Lp trình đn gin NukeViet1.0
2. Module
2.1. Các quy tc khi lp trình Module
Vi c l p trình m t Module khá d n u b n bi t PHP, ch c n n m thêm m t s quy t c sau:
a, M i file vi t cho Module đ u ph i b t đ u b ng đo n mã: Code:
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly... <br>Rat tiec, ban khong the truy cap truc tiep file nay!");
}
o n mã này có tác d ng c m ng i dùng truy c p tr c ti p đ n file. Bu c h ph i s d ng h th ng link c a b n nh m đ m b o và ki m soát quá trình hi n th thông tin.
b, H th ng NukeViet đã đ c thi t k đ t đ ng nh n d ng các file ngôn ng . phát huy s c m nh đa ngôn ng trên h th ng NukeViet, b n hãy t o m t th m c có tên "language" bên trong th m c chính c a Module. Sau đó, trong m i file vi t cho Module hãy chèn đo n mã:
Code:
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__)); get_lang($module_name);
o n mã này s chèn file ngôn ng (n u có) phù h p v i thi t đ t trong cookie c a ng i truy c p.
Các file ngôn ng ph i có tên nh sau: lang-vietnamese.php : ti ng Vi t
lang-english.php: ti ng Anh lang-french.php: Pháp lang-german.php : c
lang-chinese.php : Trung Hoa lang-russian.php : Nga
lang-thai.php: Thái Lan lang-italian.php: Ý …
c, Không s d ng cách tr ng trong tên th m c Module, thay vào đó hãy s d ng ký t “_”
d, Theo h ng d n c a h th ng PHP-Nuke, liên k t t i file c a Module ph i có cú pháp nh sau: http://www.yoursite.com/modules.php?mop=modload&name=Ten_Module&file =index V i h th ng NukeViet 1.0 còn có th s d ng c u trúc link d ng: http://localhost/home/modules.php?name=Ten_Module&file=index Trong đó:
Ten_Module: tên c a Module (tên th m c ch a Module) Index: tên file c a Module.
N u b n c n liên k t t i m t hàm xác đ nh t i b t k file nào c a module thì ch vi c thêm vào URL trên m t đo n mã sau:
&switchname=name
Nh v y, n u b n khai báo m t s chuy n đ i d ng : Code: switch($func) { case "func-one": funct-one(); break; } B n s g i nó qua link : http://www.yoursite.com/modules.php?mop=modload&name=Ten_module&file =index&func=func-one
N u hàm c a b n c n nh n nh ng bi n nh ng giá tr , s chuy n đ i c a b n s gi ng nh sau: Code: switch($func) { case "func-one": funct-one($xid, $xname); break; } Và link đ t i đó là : http://www.yoursite.com/modules.php?mop=modload&name=Ten_Module&file =index&func=func-one&xid=$xid&xname=$xname
N u b n c n s d ng các form bên trong Module, B n hãy s d ng mã này: Code:
<form action="modules.php?mop=modload&name=Ten_Module &file=index&func=Ten_ham" method="post">
... </form>
nh ng nh không s d ng nh ng tên nh ng bi n ki u nh "name" và/ho c “file” và s d ng bi n "$mop".
Chú ý quan tr ng:
B n c n bi t r ng h th ng module luôn có s n các bi n, chúng là :
$name: Khai báo tên Module
$file: Khai báo tên file đang s d ng
$mop: S d ng modules.php cho s chuy n đ i
$index: Thêm ho c lo i b nh ng kh i bên ph i $modload: G i
M t đi u thú v h th ng NukeViet là vi c cho phép s d ng các c t Block ph i và trái trong h th ng Module hay không. Vi c này th c hi n r t d dàng b ng cách đ u file, b n khai báo bi n:
Code:
$index = 1;
N u giá tr là “1”, module c a b n s hi n c c t Block ph i, n u giá tr là “0”, s ch hi n th nh ng Block trái.
Nh r ng b n luôn có th s d ng h th ng các file phiên d ch ngôn ng cho Module.
C nh báo:
website làm vi c v i các trình duy t s d ng chu n HTML 4.01 (ho c các phiên b n c h n) thì t t c các ký t "&" trong URL vi t cho Module ph i đ c thay b ng th "&". Ví d URL:
<a href="modules.php?op=modload&name=FAQ&file=index">
Ph i đ c vi t thành:
<a href="modules.php?op=modload&name=FAQ&file=index">
N u không, website c a b n s không t ng thích v i chu n HTML 4.01.