$language_array: Thông tin ngôn ng... NV_DEL_ONLINE_TIME: Th i gian xóa tr ng thái online.. NV_USER_AGENT: Thông tin useragent.. NV_AUTHORS_GLOBALTABLE: Tên table authors.. NV_
Trang 1MÔ T K THU T
MÃ NGU N M NUKEVIET v3.x
I T ng quan v c u trúc NukeViet 3
1 Các thu t ng 3
a) Template, theme: 3
b) Module: 3
c) Block: 4
d) Crontjobs: 4
2 C u trúc file và folder: 4
a) Mô t các file trong th m c g c: 5
b) Mô t các th m c: 5
II Thi t l p h th ng NukeViet: 8
1 Thi t l p các giá tr m c đ nh: 8
2 Thi t l p các nhà cung c p OpenID: 10
3 Thi t l p m t s ch c n ng b o m t: 10
a) Ch ng flood (ch ng l t d li u): 10
b) Ch ng quá t i máy ch : 11
c) Ki m tra và ch n các máy tính dùng proxy: 11
d) Ki m tra và chuy n h ng các REFERER bên ngoài đ n trang ch : 12
e) Sao l u CSDL: 12
f) Ki m tra an ninh khu v c admin: 13
III Các hàm đ c xây d ng s n, các class, các tài nguyên khác: 14
1 Các hàm đ c xây d ng trong NukeViet: 14
2 Các bi n dùng chung: 20
3 Các h ng: 24
4 Các class dùng trong l p trình NukeViet: 26
a) Các class đ c g i s n: 26
b) Các class có th ng dùng: 28
IV L p trình NukeViet 29
1 Quy c chung 29
2 Themes: 30
a) T ng quan v theme c a NukeViet: 30
b) Xây d ng giao di n c b n: 30
c) Xây d ng giao di n nâng cao: 32
3 Modules: 32
a) T ng quan v Module c a NukeViet: 32
b) Vi t module đ n gi n: 33
c) Vi t module nâng cao: 37
4 Blocks: 39
a) T ng quan v block: 39
b) Vi t block module: 40
c) Vi t block global: 41
5 Cronjobs (Tác v t đ ng): 46
a) T ng quan v crontjob: 46
b) Vi t crontjob: 47
6 M t s l u ý: 47
Trang 27 Làm vi c v i ngôn ng và d ch thu t h th ng NukeViet: 49
7.1 L a ch n ph i pháp đa ngôn ng : 50
7.2 D ch thu t ngôn ng giao di n cho h th ng: 50
V B o m t h th ng NukeViet: 51
1 C p nh t phiên b n m i nh t 51
2 H n ch s d ng các module và block 52
3 Ch n truy c p th m c không đ c phép 52
4 V n đ Chmod: 53
5 Thông tin Admin 53
5.1 i tên th m c admin: 53
5.2 B t ch đ captcha trong khi đ ng nh p: 53
5.3 B t ch đ Ki m tra IP khi truy c p khu v c admin 54
5.4 B o v th m c admin b ng ch c n ng b o v th m c c a hosting 55
6 Gi u file config.php 55
7 Thay đ i đ ng d n t i các th m c h th ng 55
8 Mư hoá file c u hình h th ng 55
9 C p nh t thông tin t di n đàn nukeviet.vn 55
VI H ng d n t i u t p tin JavaScript trong mư ngu n m NukeViet 3.x 56
1 Các ki u t i u JavaScript 56
1.1 Ki u RegExp: 56
1.2 Mư hóa ki u Gzip n a v i: 56
1.3 Gi m kích th c t p tin d a trên công ngh t i u c u trúc mư ngu n và rút g n các ký t 56
2 Cách s d ng Google Closure Compiler t i u JavaScript cho NukeViet 3: 57
2.1 T i u cho các l p trình viên 57
2.2 T i u cho khách truy c p web 58
VII Các công c dành cho ng i phát tri n NukeViet 58
1 Công c t o module 58
2 Công c t o gói giao di n m i 58
3 Công c nén JavaScript 59
4 Công c nén CSS 59
5 Công c d ch thu t dành cho NukeViet 59
VIII L i k t 60
Trang 3theme: admin_default và admin_full cho khu v c qu n tr
Hai theme admin_default và default là hai theme h th ng, n u các giao di n khác không h tr b t kì thành ph n gì thì nh ng thành ph n đó đ c l y m c đ nh t hai theme này, vì v y tuy t đ i không đ c đ i tên hay ch nh s a hai theme này
b) Module:
(đ c là Mô-đun, còn có tên g i khác là Addons hay Plugins – tính n ng t ng c ng cho h th ng) là nh ng ph n m r ng c a h th ng NukeViet M i Module s đ m nhi m m t ch c n ng riêng cho h th ng Tùy ch c n ng và nhi m v c a module mà
nó có th ph c v h th ng ch y các tác v n n ho c ch t ng tác bên ngoài v i ng i
s d ng (t ng ng v i vi c can thi p sâu ho c không sâu vào h th ng)
Có th hình dung nh th này: N u coi NukeViet là m t t ng công ty ho t đ ng theo mô hình công ty m - công ty con thì các Module chính là các công ty con, chúng
có th có ch c n ng và nhi m v khác nhau, có kh n ng ho t đ ng t ng đ i đ c l p
nh ng đ u ch u s ch đ o c a công ty m
H th ng NukeViet m c đ nh đư có s n m t s module, ngoài ra ng i s d ng có
th cài thêm các module m i v t website http://nukeviet.vn đ cài lên h th ng ho c
g b nó kh i h th ng
Các module đ c cài b ng cách v t lý (cài thêm code lên h th ng) đ c g i là module th ng, n u các module này cho phép thì h th ng có th "nhân b n" nó lên thành nhi u module khác có ch c n ng gi ng nó Các module đ c nhân b n lên theo hình th c đó g i là module o
Tóm l i: Module o là module đ c nhân b n t m t module b t k c a h th ng NukeViet (n u module đó cho phép t o module o)
Trang 4L u ý:Module o là khái ni m ch có k t phiên b n NukeViet 3.0 (khi NukeViet
h tr công ngh đa nhân module) Công ngh này cho phép ng i s d ng có th
kh i t o hàng ngàn module m t cách t đ ng mà không c n đ ng đ n m t dòng code Các module đ c sinh ra t công ngh này g i là module o
c) Block:
Block (kh i) là các kh i nh trên website nh m m c đích đa d ng d li u trên m t trang và có th s d ng đ trang trí cho website Các block có th b t, t t ho c di chuy n d dàng đ n b t c v trí nào (đ c ng i thi t k ch đ nh trên website khi thi t k giao di n web)
Nh các Block mà n i dung website tr lên đa d ng và phong phú h n Khách truy
c p c ng nh th mà d dàng n m b t n i dung website và nhanh chóng ti p c n đ n
có th hi n th module, còn block s d ng cho toàn b site có th hi n th toàn b
website Riêng block global đ c phân làm hai lo i: Block module và block th
m c includes/blocks/
Block kh i qu ng cáo giúp hi n th các qu ng cáo t o ra t module Banner
Block HTML cho phép t o các d li u t HTML
Block RSS cho phép l y n i dung t các ngu n RSS
M i block có th áp các m u trình bày giao di n khác nhau tùy vào theme s d ng
Trang 5Th m c g c ch a NukeViet bao g m 15 th m c và 10 t p
a) Mô t các file trong th m c g c:
File index.php: Là file kh i đ ng h th ng, g i ra t t c các tài nguyên NukeViet
s d ng, xác đ nh các module, các template, th ng kê s ng i online, xác đ nh quy n đi u hành module
File mainfile.php: Là file g i ra t t c các tài nguyên c a h th ng s d ng, kh i
t o các h ng, các bi n dùng chung File này đ c g i ngay index.php đ c g i
File htaccess: C u hình Charset m c đ nh cho các file HTML, CSS, JS, PHP, HTM, ch n truy c p bên ngoài đ n m t s file Thi t l p cho các modules c a
Apache
File CJzip.php: Ch a các thành ph n ph c v vi c nén trang
File favicon.ico: Icon c a website
Các file robots.php, robots.txt, web.config: Thi t l p quy n tìm ki m c a các máy
Là b nh đ m c a h th ng, khi th c hi n ch c n ng xóa cache thì các file trong
th m c này s b xóa Cache s giúp h th ng ho t đ ng nhanh h n, gi m b t công vi c x lý c a CPU
iii Th m c data:
Ch a các file d li u t các module, ví d các file d li u qu ng cáo (module
banners), file config_global.php ch a thông tin c u hình c a site, file metatags.xml l u
c u hình meta-tag…
Trang 6Ngoài ra th m c này c ng có th ch a nhi u file khác tùy theo m i module có
ho c không có l u file vào
iv Th m c files:
G m 5 th m c con:
Css: Ch a các file css nén c a website n u b t ch c n ng t i u h th ng
Dcache: B nh đ m c a module uploads Các file trong th m c này không
đ c xóa khi dùng ch c n ng xóa cache c a module webtools, vì v y n u g p
l i ph n upload thì b c đ u tiên nên làm là xóa th công các file trong th
Ch a toàn b tài nguyên c a b nhân NukeViet
Th m c blocks: Ch a các block global c a h th ng
Th m c class: Ch a các class: array2xml.class, checkurl.class, crypt.class,
Diagnostic.class, download.class, error.class, flood.class…
Th m c core: Ch a các file x lý c t lõi c a h th ng
Th m c cronjobs: Ch a các file ti n trình t đ ng c a h th ng
Th m c fonts: Ch a font cho ph n capcha
Th m c ini: Ch a các file d li u nh đ n v ti n t , kí hi u ngôn ng , trình duy t, h đi u hành
Th m c ip_files: D li u IP c a các n c
Th m c keywords: Ch a các hàm tách t khóa
Th m c phpmailer: Ch a phpmailer class, là ph n ph trách vi c g i email
Th m c phpsvnclient: Class dùng đ giao ti p v i máy ch SVN
Trang 7 Th m c utf8: Các hàm x lý mư utf-8
Các file:
bots.php: C u hình các máy ch tìm ki m
constants.php: Các thi t l p h th ng Ph n thi t l p này s đ c h ng d n t i
m c thi t l p h th ng
footer.php, header.php: File thi t l p đ nh d ng xu t ra c a website
functions.php: Ch a các hàm NukeViet xây d ng s n
getloadavg.php: Ch ng quá t i máy ch
ini.php: c d li u t file ini, đ i chi u đ xu t ra bi n $sys_info
language.php : Xác đ nh ngôn ng data, ngôn ng giao di n
openid.php: Thông tin các nhà cung c p openID đ c s a d ng
request_uri.php: X lý bi n $_GET
rewrite.php, rewrite_index.php, rewrite_language.php: Ch a n ng rewrite c a
NukeViet
sqldata.php: Ch a d li u t o table trong CSDL c a các module h th ng
timezone.php: Thông tin v múi gi
vii Th m c install: Ph n cài đ t NukeViet
viii Th m c js: Ch a các file javascript NueViet s d ng
Ngôn ng module (các module khu v c qu n tr ): admin_ten-module.php
Ngôn ng block: (các block trong th m c includes/blocks/) block.ten-block.php
Ngôn ng cài đ t: install.php
x Th m c logs: Ch a toàn b nh t kí h th ng:
xi Th m c modules: Ch a các module khu v c ng i dùng
xii Th m c sess: V trí l u các session
Trang 8xiii Th m c themes: Ch a các giao di n
xiv Th m c tmp: Các file t m Các file trong th m c này s đ c t đ ng xóa nh
ti n trình t đ ng
xv Th m c uploads: Ch a các file upload c a các module, m i th m c trong th
m c này t ng đ ng v i m t module
II Thi t l p h th ng NukeViet:
Ph n này ch đ c p t i các thi t l p b ng cách thay đ i các file h th ng và các thi t l p an ninh
1 Thi t l p các giá tr m c đ nh:
Các thi t l p m c đ nh n m trong file includes/constants.php, các thi t l p này
đ c khuy n cáo ch nên làm m t l n và làm tr c khi cài đ t NukeViet
N u thay đ i các thi t l p này sau khi website đư đ c cài đ t, sau khi thay đ i c n vào khu v c qu n tr site ph n c u hình chung đ l u l i
Thi t l p file config.php
define( "NV_CONFIG_FILENAME", "config.php" );
Có th thay config.php b ng b t kì tên nào c ng nh đ ng d n đ n file đó
Ví d :
define( "NV_CONFIG_FILENAME", "hh/dfggfd.nuke" );
nh v y file config.php gi có tên dfggfd.nuke và n m trong th m c hh
Thay đ i tên th m c admin:
đ c h th ng hi u có tên nukemin
);
Trang 9 Thay đ i th m c ch a cache: define( "NV_CACHEDIR", "cache" );
L u ý: ti p đ u t có t i đa 3 kí t
"adminrelogin" );
"NV_ADMIN_CHECK_PASS_TIME", 3600 );
'NV_LIVE_COOKIE_TIME', 31536000 );
đ nh b ng 0, giá tr này s thi t l p session t n t i cho đ n khi c a s trình duy t đóng l i
hai giá tr : 1 - mã hóa md5, 2- mã hóa sha1
define( 'NV_UPASSMIN', 5 );
define( 'NV_UNICKMIN', 4 );
'NV_GFX_HEIGHT', 25 );
Trang 102 Thi t l p các nhà cung c p OpenID:
NukeViet m c đ nh cung c p ph ng th c đ ng nh p thành viên thông qua 4 nhà cung c p OpenID, ngoài ra qu n tr wesite c ng có th thay đ i, thêm ho c b t nhà cung c p OpenID
D li u v các nhà cung c p OpenID đ c l u file includes/openid.php
thêm m t nhà cung c p OpenID, th c hi n các thao tác sau:
đ ng d n đ n website có cung c p OpenID
Vào qu n tr site ph n module users => c u hình module, t i dòng Các nhà
cung c p OpenID đ c ch p nh n, ch n nhà cung c p v a thêm sau đó l u l i
NukeViet m c đ nh đư kích ho t s n ch c n ng ch ng flood cho website, tuy nhiên
ng i qu n tr có th b t, t t ho c thay đ i cách th c ch ng flood riêng cho website
Trang 11M c đ nh giá tr s là 1 – ch c n ng đang b t, đ t t ch c n ng này, c n thay đ i giá tr thành 0
thay đ i cách ch ng flood, trong file constants.php, tìm đ n dòng
//So requests toi da trong 1 phut
L u ý: Sau khi thay đ i c n vào khu v c qu n tr ph n c u hình chung đ l u l i
c u hình
b) Ch ng quá t i máy ch :
NukeViet cung c p công c b o v máy ch n u tr ng thái x lý c a CPU v t quá 80%, h th ng s t m ng ng ho t đ ng
Ch c n ng này không đ c b t lên trong NukeViet m c đ nh, đ kích ho t ch c
n ng này c n vào khu v c qu n tr ph n c u hình chung, tìm và đánh d u vào ô ki m
Ki m tra tr ng thái máy ch , n u > 80% s thông báo "Server too busy Please try
again later" sau đó l u l i c u hình
Hình 2: Ch c n ng ch ng quá t i máy ch
c) Ki m tra và ch n các máy tính dùng proxy:
Trang 12NukeViet m c đ nh không kích ho t ch c n ng ki m tra các máy tính dùng proxy,
đ kích ho t ch c n ng này, hưy đ ng nh p qu n tr web sau đó đ n ph n c u hình
chung, ch n ch c n ng ki m tra và ch n các máy tính dùng proxy là nh , v a ho c tuy t đ i
Hình 3 Ch c n ng ki m tra và ch n các máy tính dùng proxy
này, m file data/config_global.php tìm đ n dòng $global_config['proxy_blocker'] = sau đó ch nh l i thành $global_config['proxy_blocker'] = 0;, vào khu v c qu n tr và thi t l p l i ch c n ng này
d) Ki m tra và chuy n h ng các REFERER bên ngoài đ n trang ch :
NukeViet m c đ nh không kích ho t ch c n ng này, đ kích ho t, vào khu v c
qu n tr ph n c u hình chung, t i dòng Kích ho t ti n ích ki m tra và chuy n h ng các REFERER bên ngoài đ n trang ch đánh d u vào ô ki m sau đó l u l i
Hình 4 Ki m tra và chuy n h ng các REFERER bên ngoài đ n trang ch
Trang 13Hình 5 Sao l u CSDL
t i v CSDL đư sao l u, vào admin ph n CSDL => Data backup sau đó ch n file c n t i và n “T i v ”
L u ý: Các file backup CSDL đ c l u t i th m c logs/dump_backup
f) Ki m tra an ninh khu v c admin:
Admin là khu v c c c kì quan tr ng đ i v i website, do đó c n b o v ch t ch khu
v c này NukeViet cung c p hai công c giúp b o v khu v c admin: Ki m tra t ng
l a truy c p admin và ki m tra IP truy c p admin
b t ch c n ng t ng l a cho khu v c admin hưy đ ng nh p qu n tr site, vào
khu v c qu n tr => c u hình, đánh d u ch n t i ô “Ki m tra t ng l a cho khu v c
admin” và n “L u thay đ i”
Hình 6 Ki m tra t ng l u cho khu v c admin
L u ý: N u sau khi b t ch c n ng này tài kho n qu n tr t i cao b ch n, hãy m
file config_global.php tìm đ n dòng $global_config['admfirewall'] = 1; và s a l i thành $global_config['admfirewall'] = 0; sau đó c u hình l i ch c n ng này
b t ch c n ng ki m tra IP khi truy c p vào khu v c admin, hưy đ ng nh p qu n
tr site, vào khu v c qu n tr => c u hình, đánh d u ch n t i ô “Ki m tra IP khi truy
c p khu v c admin”, n “L u thay đ i”
Trang 14Hình 7 Ki m tra IP khi truy c p khu v c admin
Sau khi b t ch c n ng “Ki m tra IP khi truy c p khu v c admin” hưy nh p nh ng
IP đ c phép truy c p vào khu v c admin đ hoàn t t
Hình 8 Qu n lý IP truy c p khu v c admin
L u ý: N u sau khi kích ho t ch c n ng này, do vô tình đánh sai IP, tài kho n
qu n tr t i cao b ch n truy c p có th kh c ph c b ng cách m file config_global.php tìm đ n dòng $global_config['block_admin_ip'] = 1; và s a l i thành $global_config['block_admin_ip'] = 0;, sau đó hãy đ ng nh p qu n tr và thi t
l p l i ch c n ng này
III Các hàm đ c xây d ng s n, các class, các tài nguyên khác:
1 Các hàm đ c xây d ng trong NukeViet:
Trang 15viên, 2: Qu n tr , 3: Nhóm thành viên $groups là m t chu i ID các nhóm thành viên ví d 1,2,3,4,5 ho c đ tr ng ho c ch m t ID ví d 8 Hàm tr v true n u
đ c phép và false n u không đ c phép Ch c n ng đ ki m tra quy n h n đ xem m t n i dung ví d quy n download, quy n xem tin t c
c a hàm date trong php xem t i http://php.net/manual/en/function.date.php $time
- nv_unhtmlspecialchars ( $string )chuy n các kí t '&', ''', '"', '<', '>', '\', '/', '(', ')', '*', '[', ']', '!', '=', '#', '%',
'^', ':', '{', '}', '`', '~'t ng ng
thành '&', '\'', '"', '<', '>', '\\', '/', '(', ')', '*', '[', ']', '!',
chu i kí t ho c m t m ng m t chi u ch a các chu i kí t
Trang 16- nv_editor_br2nl ( $text )ng c l i v i nv_editor_nl2br ( $text )
Các hàm nv_editor_br2nl ( $text ), nv_editor_nl2br ( $text ), nv_br2nl (
textarea r i l u vào CSDL r i đ a ng c t CSDL ra EDITOR hay textarea (Ví d
vi t m t bài vi t và s a m t vài vi t nào đó)
- filter_text_input: l y d li u đ c submit
c a input có tên là alias, ph ng th c post, giá tr m c đ nh n u không có d li u
đ l y là GIA TRI MAC DINH
);
$from là tên ng i g i ho c tên và đ a ch mail ng i g i, n u g m tên và đ a ch mail thì chúng là m t m ng m t chi u g m hai ph n t ph n t m t là tên và ph n
t th 2 là email, $to là đ a ch email nh n, $subject tiêu đ c a email, $message là
n i dung email có th có đ nh d ng HTML, $files là đ a ch t p tin đính kèm (có
th b tr ng)
"dungpt.vinades.vn", "Tiêu đ ", "<strong>N i dung</strong>" );
- nv_generate_page: Xu t s trang ví d TRANG TR C 1 2 3 90 100 101
TRANG SAU
l t là link c b n khi n vào m t trang ví d nukeviet.vn/ khi n vào trang link s
thêm page=So-trang dùng $nv_Request->get_int( 'page', 'get', 0 ); đ l y,
trang ví d 5 bài trên m t trang, $page ph n t th m y ví d bài th 5 D li u
Trang 17xu t s là m t đo n mư HTML bao g m các link đ n vào ch c n xu t ra trình duy t tr c ti p
Nâng cao: nv_generate_page ( $base_url, $num_items, $per_page,
$start_item, $add_prevnext_text = true, $onclick = false, $js_func_name
= 'nv_urldecode_ajax', $containerid = 'generate_page' )
Trong đó:
giá tr tr v là true n u đúng và false n u sai
có m t qu n tr viên xóa m t chuyên m c
$array['title'][N i dung công vi c], $admin_info['userid'][ID c a thành
Trang 18$info_content[Thông tin2], $adminlink = 0[Cho phép hi n th link đ n khu
trang web b n c g ng truy c p hi n không t n t i
có kích th c l n h n nh thumb
- change_alias( $title )t o liên k t t nh
Trang 19Ví d change_alias("Tiêu đ ") k t qu : Tieu-de
thích", 10 )K t qu : Nukeviet là ph n
$module_name đ tr ng thì giá tr m c đ nh s là module hi n t i đang làm vi c
m c uploads n u giá tr $return là true
đ ng d n ch a rewrite n u giá tr $is_url là true
-nv_get_keywords ( $content = "" ):Tr v t khóa t $content
-nv_capcha_txt ( $seccode ): Tr v true n u mư capcha $seccode là h p l ,
ng c l i tr v false
$content
scandir.
đ i t ng xóa là th m c và giá tr $delsub là true thì hàm ch xóa các th m c
r ng
các thu m c con n u $subdir có giá tr true $conn_id là connection FTP
(ft_connect());
Trang 20- nv_error_info ( ): Tr v các thông báo l i h th ng
Trang 21'copyright' => 'Chú ý: Vi c đ ng l i bài vi t trên website ho c các ph ng ti n truy n thông khác mà không ghi rõ ngu n http://nukeviet.vn là vi ph m b n quy n',
Trang 22 $user_info: Bi n l u thông tin thành viên, bi n này ch có giá tr khi thành viên
đư đ ng nh p bên ngoài site ho c admin ho t đ ng bên ngoài site
$admin_info: L u thông tin c a admin, ch có giá tr khi admin đ ng nh p
$sys_info: L u thông tin máy ch
Trang 23đ ng Thành th t xin l i các b n vì s b t ti n này!',
'Home' => 'Trang nh t',
Trang 24…
$rss: L u đ ng d n rss c a module
$nv_vertical_menu: L u menu ngang c a module
$array_mod_title: L u thông tin Mod title c a m i module
$contents: N i dung c a m t module
$content: N i dung c a m t block
$module_name: Tên c a m t module
$module_file: Tên th m c ch a module
$module_data: Tên table c a module
$page_title: tiêu đ trang
$keywords: T khóa c a trang
$description: Mô t trang
$op: funcs c a m t module
$language_array: Thông tin ngôn ng
$lang_module: Ngôn ng c a module
$my_head: N i dung thêm trong th <head></head>
$my_footer: N i dung thêm cu i trang
$module_info: Thông tin m t module
3 Các h ng:
Các h ng c u hình h th ng đ c đ nh ngh a trong file constants.php, ngoài ra
NukeViet còn đ nh ngh a m t s h ng sau:
NV_START_TIME: Th i gian b t đ u phiên làm vi c
NV_IS_USER_FORUM: Có giá tr true n u site có tích h p di n đàn
NV_OPENID_ALLOWED: Cho phép đ ng nh p b ng OpenID
NV_CURRENTTIME: Th i gian hi n t i, giá tr b ng time()
Trang 25 NV_CURRENTMONTH_STXT: Tháng hi n t i, giá tr t Jan – Dec
NV_CURRENTDAY_2NUM: Ngày, giá tr t 01 – 31
NV_CURRENTDAY_1NUM: Ngày, giá tr t 1 – 31
NV_CURRENT12HOUR_2NUM: Gi , giá tr t 00 – 12
NV_CURRENT12HOUR_1NUM: Gi , giá tr t 0 – 12
NV_CURRENT24HOUR_2NUM: Gi , giá tr t 00 – 23
NV_CURRENT24HOUR_1NUM: Gi , giá tr t 0 – 23
NV_CURRENTMIN_2NUM: Giây, giá tr t 00 – 59
NV_DEL_ONLINE_TIME: Th i gian xóa tr ng thái online
NV_USER_AGENT: Thông tin useragent
NV_BASE_SITEURL: Tên th m c g c ch a file, ví d /nukeviet/
NV_BASE_ADMINURL: đ ng d n đ n admin, ví d /nukeviet/admin
server, ví d D:/AppServ/www
NV_EOL: Kí t ng t dòng
NV_UPLOAD_MAX_FILESIZE: Kích th c t i đa file t i lên, tính b ng byte
NV_CACHE_PREFIX: Ti p đ u t c a cache
NV_IS_AJAX: Ki m tra referer h th ng hay bên ngoài, giá tr true ho c false
NV_IS_MY_USER_AGENT:Xác đ nh có ph i User_Agent c a NukeViet hay
khô ng
NV_AUTHORS_GLOBALTABLE: Tên table authors
NV_GROUPS_GLOBALTABLE: Tên table nhóm thành viên
NV_USERS_GLOBALTABLE: Tên table thành viên
Trang 26 NV_SESSIONS_GLOBALTABLE: Ten table l u session
NV_LANGUAGE_GLOBALTABLE: Tên bable l u ngôn ng
NV_BANNERS_CLIENTS_GLOBALTABLE: Tên table ch a khách hàng ph n
qu ng cáo
NV_BANNERS_PLANS_GLOBALTABLE: Tên table ch a
NV_BANNERS_ROWS_GLOBALTABLE: Tên table ch a qu ng cáo
NV_BANNERS_CLICK_GLOBALTABLE: Tên table ch a thông tin th ng kê
qu ng cáo
NV_CONFIG_GLOBALTABLE: Tên table c u hình h th ng
NV_CRONJOBS_GLOBALTABLE: Tên table l u ti n trình t đ ng
NV_PREFIXLANG: Ti p đ u t + ngôn ng c a table ví d nv3_vi
NV_MODULES_TABLE: Tên table l u thông tin các module
NV_BLOCKS_TABLE: Tên table l u thông tin các blcok
NV_MODFUNCS_TABLE: Tên table thi t l p các layout cho theme
NV_COUNTER_TABLE: Tên table ch a thông tin th ng kê
NV_SEARCHKEYS_TABLE: Tên table ch a các t khóa tìm ki m
NV_REFSTAT_TABLE: Tên table th ng kê các referer
UPLOAD_CHECKING_MODE: Ki u ki m tra file t i lên
ADMIN_LOGIN_MODE: Ki u đ ng nh p c a admin
PCLZIP_TEMPORARY_DIR: Tên th m c ch a file nén t m th i
NV_IS_USERS: Có ph i là thành viên không
NV_IS_SPADMIN: Có ph i là admin t i cao ho c ng i đi u hành chung không
NV_IS_GODADMIN: Có ph i là admin t i cao không
NV_ALLOW_FILES_TYPE: Các ki u file đ c t i lên
NV_ALLOW_UPLOAD_FILES: Cho phép t i file lên
NV_LANG_DATA: Ngôn ng data
NV_LANG_INTERFACE: Ngôn ng giao di n
4 Các class dùng trong l p trình NukeViet:
a) Các class đ c g i s n:
$nv_Request: là bi n ch a class request:
Trang 27 L y m ng : $nv_Request ->get_typed_array ( $name, $mode = null, $type
= null, $default = null );
$default = null, $decode = true );
null, $decode = true )
null, $decode = true );
= null, $decode = true )
$mode, $all = true );
0, $encode = true )
$db: Là bi n ch a class mysql
$crypt: Là bi n ch a class crypt
$xtpl: Trong h th ng NukeViet bi n $xtpl th ng đ c ch a class xtemplate Tuy nhiên bi n này ch a đ c t o s n
Trang 28 Kh i t o: $xtpl = new XTemplate( $file_name, $file_location );
Trong đó $file_name là tên file, $file_location là đ ng d n tuy t đ i đ n file
Upload class: Dùng đ upload m t file lên h th ng
"/includes/class/upload.class.php" );
$global_config['forbid_extensions'],
$global_config['forbid_mimes'],NV_UPLOAD_MAX_FILESIZE, NV_MAX_WIDTH, NV_MAX_HEIGHT );
$replace_if_exists = true );
Giá tr tr v c a vi c l u m t file là m t m ng bao g m
error: Thông tin l i
Basename: Tên file
Trang 29tuy t đ i đ n file, $directory là th m c ch a file, $file_basename tên file t i
v , $is_resume cho phép t m ng ng và download l i, $max_speed t c đ t i đa
* @Author VINADES.,JSC (contact@vinades.vn)
* @Copyright (C) 2010 VINADES.,JSC All rights reserved
* @Createdate 1-27-2010 5:25
*/
Trang 30 i v i các file php c a block global và crontjobs sau ph n mô t file là ph n
ki m tra an ninh:
if ( ! defined( 'NV_MAINFILE' ) ) die( 'Stop!!!' );
2 Themes:
a) T ng quan v theme c a NukeViet:
Các theme đ c đ t trong th m c themes/ M c đ nh h th ng NukeViet có b n
theme Tên c a th m c ch a theme bao g m ch cái, ch s , d u – và d u _ C u trúc c a m t theme bao g m:
Th m c block: Ch a các file template (.tpl) c a các block global n m trong th
m c includes/blocks/ Các file trong th m c này có th đ tr ng
Th m c ch a các file css M i file css c a module có tên là tên c a module, khi
ng i dùng truy c p m t module thì file css này s đ c load t đ ng, khi đóng gói module các file này c ng s đ c đóng gói t đ ng
Th m c images: Ch a các file nh, m t theme nên ch a các th m c con:
admin, arrows, icons Trong th m c này còn ch a các th m c có tên là tên c a module, khi đóng gói module, các th m c này s đ c đóng gói t đ ng
Th m c js: Ch a các file javascript n u theme có s d ng
Th m c layout: Ch a các file tpl – các file đ nh d ng cho theme
Th m c modules: Trong th m c này ch a các th m c có tên là tên c a module, khi đóng gói m t module các th m c t ng ng c ng đ c đóng gói
Th m c system: Ch a các file tpl h th ng, thông th ng m i theme đ u gi ng nhau v các file này, không c n ph i s a chúng
File config.ini: Thi t l p theme
File default.jpg: nh mô t theme
File favicon.ico: Icon c a theme
File theme.php: File ch c n ng c a theme
b) Xây d ng giao di n c b n:
xây d ng m t giao di n c b n t giao di n đư có ta ti n hành copy m t theme
đư có, đ t l i tên theme, xóa các ph n sau:
T t c các file trong th m c, ho c c th m c blocks