Hướng dẫn viết module cho nukeviet 3

43 1.2K 0
Hướng dẫn viết module cho nukeviet 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài viết hướng dẫn rất chi tiết cho những lập trình viên đang muốn chinh phục Nukeviet. Giúp người dùng viết thêm các module cho nuke để mở rộng tính năng của website nukeviet từ đó có thể dễ dàng làm được website với nhiều tính năng trong thời gian sớm nhất.

Hướng dẫn viết module cho nukeviet 3.x Để dễ thao tác bạn làm giống phần code (số dòng) Trong khuôn khổ viết trình bày với bạn cấu trúc bản, công dụng chức file thư mục module cách viết module chi tiết từ đơn giản tới phức tạp Cấu trúc module, chức file, file, floder bắt buộc phải có Cách viết module đơn giản chứa file PHP Mở rộng kết hợp file PHP riêng file bắt buộc phải có Làm việc với file ngôn ngữ lang Sử dụng xtemplate Mở rộng thêm file thông tin module, RSS Sử dụng javscript ajax cho module (phần AJAX bạn xem viewtopic.php?f=117&t=15403) Sử dụng lớp (class) xây dựng sẵn Tích hợp thêm phần mở rộng Trước vào phần hướng dẫn xin trình bày số quy ước Các file PHP bắt đầu với phần thông tin tác giả, quyền, ngày viết, email tác giả VÍ dụ như: /** * @Project NUKEVIET-MUSIC * @Author Phan Tan Dung (phantandung92@gmail.com) * @copyright 2011 * @createdate 26/01/2011 09:17 AM */ Tương tự cho file js /* * * @Project NUKEVIET-MUSIC * @Author Phan Tan Dung (phantandung92@gmail.com) * @copyright 2011 * @createdate 26/01/2011 09:17 AM */ Tên module tốt bạn đặt tên chữ không chứa kí tự đặc biệt Bây ta vào phần chi tiết CẤU TRÚC CƠ BẢN CỦA MỘT MODULE Bao gồm file thư mục sau: - admin.functions.php - version.php - funcs - funcs/main.php - admin - admin/main.php - functions.php Với nhiêu ta có module đơn giản (không có CSDL) hoạt động Như muốn viết module ta tạo thư mục có tên tên module thư mục modules Sau tạo thư mục, file vào thư mục vừa tạo Mình ví dụ module quanlihs Chức file sau: file version.php: file có chức khai báo tiêu đề module, funcs có block, tác giả module, thông tin phiên bản, cấu trúc thư mục thư mục uploads File admin.functions.php: File thường chứa function, dùng admin File function.php: File thường chứa function, dùng cho site admin/main.php: File thể nội dung module phần admin funcs/main.php: FIle thể nội dung (trang chính) module bên site Thứ tự khởi động module sau: Khi module chạy tùy theo admin hay site mà file admin.functions.php hay file function.php chạy trước sau file thư mục admin hay funcs chạy mặc định file main.php Ta thường thấy url trang web nukeviet (chưa bật rewrite) có dạng http://yourdomain/index.php? lang=vi&nv= =listenone Trong lang ngôn ngữ site, nv module chạy, op funcs chạy (ở listenone) Giá trị op tên funsc thư mục funsc hay admin Nếu url mà khuyết phần op= có nghĩa funcs main.php chạy Cấu trúc url cấu trúc Giá trị op ta thay đổi ví dụ http://nukeviet.vn/vi/news/viec-lam/ Ta tìm hiểu sau Bây bắt đầu viết module đơn giản (không có CSDL) để xuất dòng chữ "XIN CHÀO CÁC BẠN" bên admin site Đầu tiên tạo thư mục (là tên module) thư mục modules thêm vào file thư mục sau: - admin.functions.php - version.php - funcs - funcs/main.php - admin - admin/main.php - functions.php file version.php có nội dung: Dòng này: if ( ! defined( 'NV_ADMIN' ) or ! defined( 'NV_MAINFILE' )) die( 'Stop!!!' ); bạn để nguyên module -"modfuncs" => "main": Tên funcs thư mục funcs có block hoạt động bên site Đối với funcs block ví dụ để xử lý AJAX, gửi email (popup) không cần khai báo Các funcs phân cách dấu "," ví dụ: "modfuncs" => "main, funcs1, funcs2, funcs3" , -"is_sysmod" => 0, : Có phảo module hệ thông hay không 0: không 1: có -"virtual" => 1: CHo phép ảo hóa module không 0: không 1: có -date,author, version: thông tin ngày , tác giả, phiên module -uploads_dir: Khai báo cấu trúc thư mục thư mục uploads Với khai báo kích hoạt module hệ thông tạo thư mục có tên tên module thư mục upload (biến $module_name hiểu tên module) file admin.functions.php có nội dung sau: - $allow_func = array('main'); : biến $allow_func mảng chiều chứa funcs rong thư mục admin cho phép chạy Ở ví dụ cho funcs main.php Các funcs không khai báo biến chạy báo lỗi "Bạn quyền truy cập chức này." - define( 'NV_IS_QUANLY_ADMIN', true ); Dòng khởi tạo dùng cho module Các funcs main.php kiểm tra giá trị chạy ngược lại báo lỗi "Stop!!!" file function.php bạn thêm sau: Với module đơn giản ví dụ file có chức tạo để dùng bên site Tạo file main.php thư mục admin với nội dung sau: - Biến $page_title tiêu đề funcs - Tất nội dung lưu vào biến $contents sau xuất sau gọi file header.php Phần : include (NV_ROOTDIR "/includes/header.php"); echo nv_admin_theme($contents); include (NV_ROOTDIR "/includes/footer.php"); Các bạn giữ nguyên module (trong admin) Tương tự tạo file main.php lưu vào thư mục funcs với nội dung sau: OK ta tạo xong module đơn giản để xuất dong chữ "Xin chào bạn" bên admin lẫn site Bây bạn vào phần thiết lập module kích hoạt modlue vừa tạo vào phần quản lí module noài site bạn thấy kết Với module Đơn giản ta sử dụng để inframe trang khác liên kết sang trang khác ấn vào menu Ví dụ thay file main.php bằng: download_file(); */ Đây phần hướng dẫn dùng Dùng class bạn thực bước sau: - Gọi class Bạn dùng include require_once - Nhập thông số khởi tạo - Gọi function thực hiên Ví dụ để download file demo.zip ta làm sau: - Gọi class download: require_once ( NV_ROOTDIR '/includes/class/download.class.php' ); - Nhập thông số: $download = new download( NV_ROOTDIR "/" NV_UPLOADS_DIR "/demo.zip", NV_ROOTDIR "/" NV_UPLOADS_DIR , "demo.zip", true); 33 - down $download->download_file(); Trong phần nhập thông sô bạn ý phần hướng dẫn class: * $fichier = new download("example.zip"); // use the original file name, disallow resuming, no speed limit * $fichier = new download("example.zip","My Example.zip") ; // rename the file, disallow resuming, no speed limit * $fichier = new download("example.zip","My Example.zip",true) ; // rename the file, allow resuming, no speed limit * $fichier = new download("example.zip","My Example.zip",true,80) ; // rename the file, allow resuming, speed limit 80ko/s Chịu khó đọc tiếng anh xí DÙNG CLASS image.class.php Các bạn mở file lê thấy hướng dẫn /** * if(!file_exists(NV_ROOTDIR."/uploads/1237974658.jpg")) { * @require_once(NV_ROOTDIR."/includes/class/image.class.php"); * $image = new image(NV_ROOTDIR."/images/logo.png", $max_width,$max_height); * $image->resizePercent(200); * $image->cropFromCenter(150,200); * $image->cropFromLeft(50,50,300,300); * $image->addstring("nguyenanh tu", 'right', 'bottom', "", 8); * $image->addlogo(NV_ROOTDIR.'/images/logo.png','left','top'); * $image->resizePercent(30); * $image->rotate(45); * $image->reflection(); * $image->show(); * $image->save(NV_ROOTDIR.'/'.NV_TEMP_DIR.'/'); * $image->close(); * print_r($image->create_Image_info); * exit; * } */ Cách dùng tương tự: kiểm tra xem file tồn hay không: if(! file_exists(NV_ROOTDIR."/uploads/1237974658.jpg")) { tồn gọi class @require_once(NV_ROOTDIR."/includes/class/image.class.php"); Nhập thông sô : $image = new image(NV_ROOTDIR."/images/logo.png", $max_width,$max_height); gồm đường dẫn tới file ảnh, chiều rộng, cao tối đa Tiếp theo phần thao tác: * $image->resizePercent(200); Chỉnh sửa kích thước theo thông sô phần trăm * $image->cropFromCenter(150,200); Cắt ảnh từ * $image->cropFromLeft(50,50,300,300); Cắt từ bên trái * $image->addstring("nguyenanh tu", 'right', 'bottom', "", ; Thêm vào ảnh dòng chữ nguyenanhtu HIHI BÁC ANH TU CHƠI GHÊ QUÁ class bác viết nên chơi string nguyenanh tu * $image->addlogo(NV_ROOTDIR.'/images/logo.png','left','top'); Thêm vào ảnh logo * $image->resizePercent(30); * $image->rotate(45); xoay ảnh 45 độ * $image->reflection(); * $image->show(); * $image->save(NV_ROOTDIR.'/'.NV_TEMP_DIR.'/'); Lưu ảnh lại * $image->close(); 34 * print_r($image->create_Image_info); Tương tự với cách bạn dùng class 35 Tiếo theo hướng dẫn bạn dùng phần tích hợp Đó phần popup để upload file Ta dùng chức để lưu ảnh học sinh Ta tạo thêm vào table module trường 'avatar' Ta mở file action.php lên sửa lại: [...]... "lang _module" ; $lang _module[ 'main_page'] = "Trang chính"; $lang _module[ 'stt'] = "STT"; $lang _module[ 'name'] = "Họ và tên"; $lang _module[ 'birthdate'] = "Ngày sinh"; $lang _module[ 'address'] = "Địa chỉ"; $lang _module[ 'add_student'] = "Thêm học sinh"; $lang _module[ 'add_student_err_name'] = "Bạn chưa nhập tên học sinh"; $lang _module[ 'add_student_err_bd'] = "Bạn chưa nhập ngày sinh của học sinh"; $lang _module[ 'add_student_err_ar']... sinh"; $lang _module[ 'add_student_err_ar'] = "Bạn chưa nhập địa chỉ"; $lang _module[ 'add_student_err_save'] = "Không thể lưu dữ liệu được"; $lang _module[ 'add_student_info'] = "Thông tin học sinh mới"; $lang _module[ 'save'] = "Lưu"; ?> Ta thấy có hia phần $lang_translator và $lang _module trong đó $lang _module là phần ngôn ngữ dùng cho module còn $lang_translator là thong tin tác giả, bản quyền, ngày dịch,... "lang _module" ; 21 $lang _module[ 'stt'] = "STT"; $lang _module[ 'name'] = "Họ và tên"; $lang _module[ 'birthdate'] = "Ngày sinh"; $lang _module[ 'address'] = "Địa chỉ"; ?> và sau khi thay ta cũng có file main.php:

Ngày đăng: 20/07/2016, 21:29

Từ khóa liên quan

Mục lục

  • Hướng dẫn viết module cho nukeviet 3.x

Tài liệu cùng người dùng

Tài liệu liên quan