#187841 post by ngoctu2008
Day 30 Month 01 2018 , 23:56

Quy tắc đặt tên phiên bản module

Quy tắc đặt tên phiên bản module tương tự quy tắc đặt tên phiên bản chính của NukeViet (nhưng không liên quan đến phiên bản NukeViet đang có). Theo quy tắc này, phiên bản của module có dạng: X.Y.ZZ

Trong đó:

  • X: Chuỗi phiên bản chính, 1 chữ số; sẽ tăng khi có sự thay đổi lớn trong module mà theo đó hệ thống mới có thể khác 1 phần hay hoàn toàn hệ thống cũ.
  • Y: Chuỗi phiên bản phụ, 1 chữ số; sẽ tăng khi có sự thay đổi module mà không làm mất tính tương thích trong cùng phiên bản chính.
  • ZZ: Chuỗi phiên bản cấu tạo. Đánh dấu sự khác nhau trong cùng 1 phiên bản của module, 2 chữ số; sẽ tăng khi có đóng gói nhằm các mục đích phát hành, thử nghiệm…

Ví dụ:

Sai quy tắc Đúng quy tắc
1.0.1 1.0.01
1.0 1.0.00 hoặc 0.1.00
1 1.0.00 hoặc 0.1.00 hoặc 0.0.01

----------------------------------------------
Nguồn: https://wiki.nukeviet.vn
#187842 post by ngoctu2008
Day 31 Month 01 2018 , 00:03
---- CẤU TRÚC CƠ BẢN CỦA MỘT MODULE
Bao gồm các file và thư mục sau:
- admin.functions.php
- version.php
- funcs
- funcs/main.php
- admin
- admin/main.php
- functions.php


Với nhiêu đó là ta đã có một module đơn giản (không có CSDL) có thể hoạt động rồi. Như vậy muốn viết một module đầu tiên ta tạo một thư mục có tên là tên của module trong thư mục modules. Sau đó lần lượt tạo các thư mục, file như trên vào thư mục vừa tạo.
Mình sẽ ví dụ đây là module quanlihs.

Chức năng của các file như sau:

-- file version.php: file này có chức năng khai báo tiêu đề module, các funcs có block, tác giả module, thông tin phiên bản, cấu trúc thư mục trong thư mục uploads.
-- File admin.functions.php: File này thường chứa các function, hằng dùng trong admin
-- File function.php: File này thường chứa các function, hằng dùng cho ngoài site
-- admin/main.php: File này sẽ thể hiện nội dung của module phần admin
-- funcs/main.php: FIle này sẽ thể hiện nội dung (trang chính) của module bên ngoài site.

Thứ tự khởi động một module như sau: Khi module được chạy thì tùy theo admin hay ngoài site mà file admin.functions.php hay file function.php được chạy trước sau đó là các file trong thư mục admin hay funcs được chạy tiếp theo mặc định sẽ là 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 chính là ngôn ngữ của site, nv là module đang chạy, op chính là funcs đang chạy (ở đây là listenone). Giá trị op này chính là tên của funsc trong thư mục funsc hay admin. Nếu trên url mà khuyết phần op= có nghĩa funcs main.php đang được chạy.

Cấu trúc url như trên là cấu trúc cơ bản. Giá trị op ta có thể thay đổi ví dụ như http://nukeviet.vn/vi/news/viec-lam/ . Ta sẽ tìm hiểu sau.

Bây giờ chúng ta bắt đầu viết một module đơn giản (không có CSDL) để xuất ra dòng chữ "XIN CHÀO CÁC BẠN" bên trong admin và ngoài site.
Đầu tiên tạo một thư mục (là tên module) trong thư mục modules rồi thêm vào đó các file và thư mục sau:
- admin.functions.php
- version.php
- funcs
- funcs/main.php
- admin
- admin/main.php
- functions.php
-------------------------------------------------------------
Tác giả: hoaquytim99
#187843 post by ngoctu2008
Day 31 Month 01 2018 , 00:07

File: version.php

 <?php /** * @Project Module Nukeviet 4.x * @Author Webvang.vn (hoang.nguyen@webvang.vn) * @copyright 2014 J&A.,JSC. All rights reserved * @License GNU/GPL version 2 or any later version * @createdate 08/10/2014 09:47 */ if (!defined('NV_ADMIN') or !defined('NV_MAINFILE')) die('Stop!!!'); $module_version = array( 'name' => 'QLHS', // Tieu de module 'modfuncs' => 'main,viewcat,topic,groups,detail,search,content,tag,rss', // Cac function co block 'change_alias' => 'topic,groups,content,rss', 'submenu' => 'content,rss,search', 'is_sysmod' => 0, // 1:0 => Co phai la module he thong hay khong 'virtual' => 1, // 1:0 => Co cho phep ao hao module hay khong 'version' => '4.0.00', // Phien ban cua modle 'date' => 'Wed, 8 Oct 2014 00:00:00 GMT', // Ngay phat hanh phien ban 'author' => 'Webvang.vn (hoang.nguyen@webvang.vn)', // Tac gia 'note' => '', // Ghi chu 'uploads_dir' => array( $module_name, $module_name . '/source', $module_name . '/temp_pic', $module_name . '/topics' ), 'files_dir' => array($module_name . '/topics') );

Trong đó:

  • Name: Tiêu đề của module.
  • Modfuncs: Các funcs được sử dụng
  • is_sysmod: Có phải module hệ thống hay không.
  • Virtual: Cho phép ảo hóa hay không.
  • Version: Phiên bản của module.
  • Date: Ngày xuất bản module.
  • Author: Tác giả module.
  • uploads_dir: Các thư mục tải lên của module.
#187883 post by ngoctu2008
Day 07 Month 02 2018 , 01:28
File: admin.functions.php
 <?php /** * @Project NUKEVIET 4.x * @Author VINADES.,JSC <contact@vinades.vn> * @Copyright (C) 2014 VINADES.,JSC. All rights reserved * @License GNU/GPL version 2 or any later version * @Createdate 12/31/2009 2:29 */ if (!defined('NV_ADMIN') or !defined('NV_MAINFILE') or !defined('NV_IS_MODADMIN')) { die('Stop!!!'); } $allow_func = array( 'main', 'content', 'alias', 'change_status', 'change_weight', 'del', 'view' ); // $allow_func là một mảng một chiều chứa các funcs rong thư mục admin cho phép chạy. //Ở ví dụ này chỉ cho một funcs là main.php. //Các funcs không được khai báo trong biến này khi chạy sẽ báo lỗi "Bạn không có quyền truy cập chức năng này." define('NV_IS_FILE_ADMIN', true); //define( 'NV_IS_QUANLY_ADMIN', true ); Dòng này sẽ khởi tạo một hằng dùng cho module. //Các funcs như main.php sẽ kiểm tra giá trị hằng này nếu đúng sẽ chạy ngược lại sẽ báo lỗi "Stop!!!".