NUKEVIET 3.0 PROFESSIONAL
Quy ước thêm:
- Nói file chức năng không đi kèm admin là chỉ các file chức năng của website.
Overview
|
+Kế thừa các định nghĩa trong việc thiết kế ứng dụng trên nền web từ dự án simplecms:
*các trạng thái của ứng
dụng (trạng thái chính & các trạng thái phụ)
Trong nukeviet, các trạng thái là
các modules, trạng thái chính là nhánh mặc định khi chạy vào module (ie:
thành phần __construct trong php.) còn các trạng thái phụ là các nhánh khác của
module.
*có 2 phần: site chạy ứng
dụng (gọi tắt app) & site quản lý admin (gọi tắt admin).
*Nguyên tắc do-half: 1
ứng dụng được cấu thành bởi: 1 hệ thống hỗ trợ dở dang + 1/nhiều ứng
dụng sử dụng hệ thống để hoàn thành công việc còn lại.
+Kế thừa ý tưởng
coding:
*Mọi thứ được tách ra
rõ ràng để quản lý & liên kết chúng thành 1 thể thống nhất.
Khái niệm
Ngôn ngữ giao diện
|
Mỗi
1 module (or các thành phần khác của hệ thống)
sẽ có 1 danh sách các giao diện thể hiển bởi chuỗi text/html là các thành
phần hiển thị sử dụng trong module. Chúng được thiết kế vào 1 file với danh sách chuỗi hiển thị & được phân nhóm
vào các loại ngôn ngữ như: tiếng việt, tiếng anh...
Quy
ước:
-File
ngôn ngữ cho admin có tiền tố là admin_.
-có
1 số các ngôn ngữ mặc định: vi.php, admin_vi.php, en.php, admin_en.php… cho module.
|
file chức năng
|
là các nhánh của 1 module. Trong đó có 1 nhánh chính.
|
Folders Hierarchy
admin/: chứa phần quản lý admin.
includes: chứa các file sử dụng chung.ie: header, footer.
Images: chứa ảnh.
Js: chứa files javascript.
Modules: chứa các module của ứng dụng.
Themes: chứa nhiều files tạo thành ứng dụng theme cho ứng dụng.
Uploads:
URL Querystring
|
//truy cập vào site
/index.php
//sử dụng ngôn ngữ lúc đầu cài đặt
?lang=vi
?language=vi
//chạy vào tên module nào (tên thư mục chứa module)
?nv=tenModule
//chạy vào tên file chức năng của module
?op=tenChucNang
Module overview
|
Như đã biết phần quan trọng nhất của nukeviet là viết module. Đây là hạt nhân của ứng dụng.
-Mỗi 1 module là 1 thư mục. Tên module chính là tên thư mục của module & nó có thể được đổi tên cho thân thiện hơn ở phần quản lý admin.
note:
*Tên module hay tên thư mục chứa module không được viết cách.
ie: about/
note:
*Tên module hay tên thư mục chứa module không được viết cách.
ie: about/
-1 Module chia làm 2 phần:
*Phần chức năng chính chứa ở thư mục /modules/ten_module.
*Thiết lập giao diện xtemplate ở mục chứa themes: themes/ten_theme/modules/ten_module
Hierarchy:
//----------------------kiến trúc tầng thư mục----------------------------------------------------------------------------
//----------------------kiến trúc tầng thư mục----------------------------------------------------------------------------
/funcs: chứa các nhánh (các files chức năng) của module chạy trên app.
/functions.php: cấu hình, chứa các hàm cho module & các file chức năng của app.
/language: thư mục chứa các file ngôn ngữ giao diện dành cho admin và app.
/admin: chứa các file chức năng cho admin.
/admin.functions.php: tương tự functions.php, dành cho admin.
/theme.php: chứa các hàm tạo & trả về ngôn ngữ giao diện cho module.
/version: cấu hình module như: phiên bản, cho phép ảo,....
/action: cài đặt cơ sở dữ liệu cho module. File này được chạy khi cài đặt module.
Note: muốn xóa module trong admin phải xóa file này đi.
=> ngoài ra có:
/js: chứa file javascript sử lý cho module.
/blocks: sử lý tính năng kéo thả.
----------------------------------------------------------------------------------------------------------------------------
Chúng ta sẽ được tìm hiểu kỹ ở nukeviet APIs.
/version.php
/action.php
Mô tả: Khi cài đặt module, nếu tồn tại file này thì sẽ chạy nó => mục đích cài đặt dữ liệu cho module.
Sau khi cài đặt xong cho module thì ở phần quản lý admin sẽ hiển thị thêm 1 module ở phía dưới cuối.
Và ở trên website sẽ hiển thị thêm 1 menu module đó.
//Địa chỉ URL mặc định đến module chính được khai báo ở version.php.
array("modfuncs" => "main",....);
ie: index.php?language=en&nv=ten_module
note:
- Không được nhập trực tiếp từ CSDL của module, mà thông qua editor của nukeviet.
ie: một số trường auto_number nếu nhập trực tiếp sẽ không chính xác.
- Khi xóa module thì phải xóa file này đi.
functions.php & admin.functions.php
- Cấu hình cho phép kích hoạt chức năng nào của module.
- Chứa các hàm, biến chung sử lý cho module ở file chức năng (có thể sử lý cả hàm giao diện, tùy bạn).
File chức năng
=> Xuất giao diện.
+ module app: functions.php sẽ làm việc với các chức năng chứa ở funcs/
+ module admin: admin.functions.php sẽ làm việc với các chức năng trong admin chứa ở admin/
Note: trong thư mục admin/ còn chứa 1 file functions.php....
include ( NV_ROOTDIR . "/includes/header.php" );
echo nv_site_theme("String");
include ( NV_ROOTDIR . "/includes/footer.php" );
include ( NV_ROOTDIR . "/includes/header.php" );
echo nv_admin_theme("String");
include ( NV_ROOTDIR . "/includes/footer.php" );
//mỗi module thường chỉ tạo 1 bảng với tên dạng. ie:
nv_vi_tenModule
/version.php
//tạo CSDL cho module
if ( ! defined( 'NV_ADMIN' ) or ! defined( 'NV_MAINFILE' ) ) die( 'Stop!!!' );
$module_version = array(
if ( ! defined( 'NV_ADMIN' ) or ! defined( 'NV_MAINFILE' ) ) die( 'Stop!!!' );
$module_version = array(
"name" => "tên module", //tên khác của module.
"modfuncs" => "tên file chức năng chính", //
"is_sysmod" => 0, //
"virtual" => 1, //cho phép module ảo hóa hay không?
"version" => "3.0.01", //phiên bản
"date" => "Wed, 20 Oct 2010 00:00:00 GMT", //ngày tạo
"author" => "VINADES (contact@vinades.vn)", //tác giả.
"note" => "", //ghi chú
"uploads_dir" => array(
$module_name //thư mục upload có tên là tên của module
)
);
/action.php
Mô tả: Khi cài đặt module, nếu tồn tại file này thì sẽ chạy nó => mục đích cài đặt dữ liệu cho module.
Sau khi cài đặt xong cho module thì ở phần quản lý admin sẽ hiển thị thêm 1 module ở phía dưới cuối.
Và ở trên website sẽ hiển thị thêm 1 menu module đó.
//Địa chỉ URL mặc định đến module chính được khai báo ở version.php.
array("modfuncs" => "main",....);
ie: index.php?language=en&nv=ten_module
note:
- Không được nhập trực tiếp từ CSDL của module, mà thông qua editor của nukeviet.
ie: một số trường auto_number nếu nhập trực tiếp sẽ không chính xác.
- Khi xóa module thì phải xóa file này đi.
thứ tự của [file ngôn ngữ, functions, theme] nằm trong file chức năng.
Note: theme nhìn được language & functions, functions nhìn được language, file chức năng nhìn được tất cả => Nên tránh đụng độ khai báo thành phần.
language/file ngôn ngữ
//các file ngôn ngữ cho site
vi.php, en.php
//các file ngôn ngữ cho admin
admin_vi.php, admin_en.php
/theme.php
-Chứa các hàm sử lý & trả về giao diện để sử dụng trong các file chức năng. note: nên sử dụng xtemplate.
functions.php & admin.functions.php
- Cấu hình cho phép kích hoạt chức năng nào của module.
- Chứa các hàm, biến chung sử lý cho module ở file chức năng (có thể sử lý cả hàm giao diện, tùy bạn).
//kiểm tra hằng hệ thống
if(!defined('NV_SYSTEM'))die('Stop!!!');
//định nghĩa hằng ràng buộc, xác nhận vào các file chức năng của nó.
define('NV_IS_MOD_tenModule',true);
//cho phép kích hoạt chức năng nào.
$allow_funcs=array('main','..',...);
//thêm menu chức năng trong admin (admin.functions.php).
$submenu['ten_file_chuc_nang']="chuỗi hiển thị";
File chức năng
=> Xuất giao diện.
+ module app: functions.php sẽ làm việc với các chức năng chứa ở funcs/
+ module admin: admin.functions.php sẽ làm việc với các chức năng trong admin chứa ở admin/
Note: trong thư mục admin/ còn chứa 1 file functions.php....
//tiêu đề hiển thị tên của module ở phần admin (file chức năng admin)
$page_title="Hiển thị tiêu đề cho module";
//hiển thị đầy đủ nội dung của 1 file chức năng.
echo nv_site_theme("String");
include ( NV_ROOTDIR . "/includes/footer.php" );
//hiện thị đầy đủ nội dung của 1 file chức năng trong admin (file chức năng admin)
echo nv_admin_theme("String");
include ( NV_ROOTDIR . "/includes/footer.php" );
/*file chức năng include các thành phần trong: (language, functions, theme.php). Do vậy chúng không chứa các thành phần trùng nhau.
*/
theme.php:
function get($txt){echo $txt;}
file chức năng:
get("Hoang");
Cơ sử dữ liệu cho module
|
Dữ liệu các bảng lưu trữ cho 1 website sẽ hoạt động trong toàn bộ 1 CSDL & Nukeviet cũng vậy.
//mỗi module thường chỉ tạo 1 bảng với tên dạng. ie:
nv_vi_tenModule
0 nhận xét:
Đăng nhận xét