programming4:moduleupdate
Khác biệt
Đây là những khác biệt giữa hai phiên bản của trang.
Phiên bản trước của cả hai bênPhiên bản trướcPhiên bản sau | Phiên bản trước | ||
programming4:moduleupdate [2016/06/16 15:39] – [Ví dụ] hoaquynhtim99 | programming4:moduleupdate [2017/11/07 10:56] (hiện tại) – [Gói nâng cấp mẫu] hoaquynhtim99 | ||
---|---|---|---|
Dòng 1: | Dòng 1: | ||
- | Kể từ phiên bản NukeViet 3.4.01, chức năng nâng cấp dành cho hệ thống và cho module hoàn toàn tự động được đưa vào sử dụng. Để làm việc với chức năng mới này các nhà phát triển module cần chú ý. | + | Kể từ phiên bản NukeViet 3.4.01, chức năng nâng cấp dành cho hệ thống và cho module hoàn toàn tự động được đưa vào sử dụng. Để làm việc với chức năng mới này các nhà phát triển module cần chú ý các vấn đề sau: |
====== Cấu trúc của một gói nâng cấp module ====== | ====== Cấu trúc của một gói nâng cấp module ====== | ||
Gói nâng cấp module và gói nâng cấp nhân NukeViet là hoàn toàn tương tự nhau, được đặt trong thư mục install, gồm có: | Gói nâng cấp module và gói nâng cấp nhân NukeViet là hoàn toàn tương tự nhau, được đặt trong thư mục install, gồm có: | ||
Dòng 257: | Dòng 257: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | **Kể từ NukeViet 4.2.01 về sau đoạn:** | ||
+ | |||
+ | <code php> | ||
+ | // Lay danh sach ngon ngu | ||
+ | $result = $db-> | ||
+ | while (list($_tmp) = $result-> | ||
+ | </ | ||
+ | |||
+ | Chỉ cần thay bằng | ||
+ | |||
+ | <code php> | ||
+ | foreach ($global_config[' | ||
+ | </ | ||
+ | |||
+ | > Chú ý: Nếu trong function cần kiểm tra gọi $global_config | ||
===== Cấu hình gói nâng cấp ===== | ===== Cấu hình gói nâng cấp ===== | ||
Trong ví dụ trên thì việc cấu hình gói nâng cấp được khai báo trong đoạn | Trong ví dụ trên thì việc cấu hình gói nâng cấp được khai báo trong đoạn | ||
<code php> | <code php> | ||
- | $nv_update_config[' | + | // Kieu nang cap 1: Update; 2: Upgrade |
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | |
+ | // ID goi cap nhat | ||
+ | $nv_update_config[' | ||
+ | |||
+ | // Cap nhat cho module nao, de trong neu la cap nhat NukeViet, ten thu muc module neu la cap nhat module | ||
+ | $nv_update_config[' | ||
// Thong tin phien ban, tac gia, ho tro | // Thong tin phien ban, tac gia, ho tro | ||
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | '4.0.01', |
+ | '4.0.22', | ||
+ | '4.0.23', | ||
+ | '4.0.24', | ||
+ | '4.0.27', | ||
+ | '4.0.28' | ||
+ | ); | ||
- | $nv_update_config[' | + | // 0:Nang cap bang tay, 1:Nang cap tu dong, 2:Nang cap nua tu dong |
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | |
</ | </ | ||
Trong đó | Trong đó | ||
- | <code php> | + | <code php> |
Là kiểu nâng cấp, 1 là Update 2 là Upgrade, việc khai báo thông số này không có mục đích gì ngoài việc thay đổi ngôn ngữ thông báo. | Là kiểu nâng cấp, 1 là Update 2 là Upgrade, việc khai báo thông số này không có mục đích gì ngoài việc thay đổi ngôn ngữ thông báo. | ||
<code php> | <code php> | ||
Là ID gói nâng cấp, được viết hoa tất cả, được đặt theo chuẩn NVU[A-Z][0-9]{4} ví dụ NVUMUSIC3400, | Là ID gói nâng cấp, được viết hoa tất cả, được đặt theo chuẩn NVU[A-Z][0-9]{4} ví dụ NVUMUSIC3400, | ||
- | <code php> | + | <code php> |
Giá trị bằng tên module (không ảo) sẽ nâng cấp (hay tên thư mục chứa module đó). | Giá trị bằng tên module (không ảo) sẽ nâng cấp (hay tên thư mục chứa module đó). | ||
<code php> | <code php> | ||
Dòng 317: | Dòng 343: | ||
Đầu tiên ta khai báo danh sách các hàm sẽ thự hiện: | Đầu tiên ta khai báo danh sách các hàm sẽ thự hiện: | ||
<code php> | <code php> | ||
- | $nv_update_config[' | + | $nv_update_config[' |
- | $nv_update_config[' | + | |
+ | | ||
+ | | ||
+ | | ||
+ | ); | ||
+ | $nv_update_config[' | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ); | ||
</ | </ | ||
Trong đó: | Trong đó: | ||
Dòng 331: | Dòng 367: | ||
Tiếp theo ta viết các hàm thực hiện công việc đó. Ví dụ | Tiếp theo ta viết các hàm thực hiện công việc đó. Ví dụ | ||
<code php> | <code php> | ||
- | $array_lang_music_update | + | $array_modlang_update |
// Lay danh sach ngon ngu | // Lay danh sach ngon ngu | ||
- | $result = $db->sql_query( " | + | $result = $db->query(" |
- | while( list( $_tmp ) = $db->sql_fetchrow( $result | + | while (list($_tmp) = $result->fetch(PDO:: |
- | { | + | $array_modlang_update[$_tmp] = array(" |
- | $array_lang_music_update[$_tmp] = array( " | + | |
- | + | // Get all module | |
- | // Get all module | + | $result1 = $db->query(" |
- | $result1 = $db->sql_query( " | + | while (list($_modt, |
- | while( list( $_modt, $_modd ) = $db->sql_fetchrow( $result1 | + | $array_modlang_update[$_tmp][' |
- | { | + | } |
- | $array_lang_music_update[$_tmp][' | + | |
- | } | + | |
} | } | ||
- | function | + | /** |
+ | * nv_up_p1() | ||
+ | * | ||
+ | * @return | ||
+ | * | ||
+ | */ | ||
+ | function | ||
{ | { | ||
- | global $nv_update_baseurl, | + | |
- | $return = array( ' | + | |
- | + | ||
- | $array_author = array(); | + | |
- | + | ||
- | // Lấy tất cả các nhạc sĩ | + | |
- | foreach( $array_lang_music_update as $lang => $array_mod ) | + | |
- | { | + | |
- | foreach( $array_mod[' | + | |
- | { | + | |
- | $table = $db_config[' | + | |
- | $sql = " | + | |
- | $check = $db-> | + | |
- | + | ||
- | while( $row = $db-> | + | |
- | { | + | |
- | $array_author[$lang][$module_info[' | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | $db-> | + | |
- | // Cập nhật nhạc sĩ cho bảng bài hát, video | + | $return = array( |
- | foreach( $array_lang_music_update as $lang => $array_mod ) | + | ' |
- | { | + | ' |
- | foreach( $array_mod['mod'] as $module_info ) | + | 'next' |
- | { | + | ' |
- | $table | + | |
+ | ' | ||
+ | ); | ||
- | $array_author[$lang][$module_info['module_data']]['na' | + | foreach ($array_modlang_update as $lang => $array_mod) { |
- | + | foreach ($array_mod['mod' | |
- | foreach( $array_author[$lang][$module_info[' | + | $table_prefix = $db_config['prefix' |
- | { | + | |
- | $db->sql_query( "UPDATE `" . $table . "` SET `nhacsi`=' | + | // Cập nhật default chasert của các bảng |
- | $db->sql_query( "UPDATE `" . $table . "_video` SET `nhacsi`='" | + | try { |
- | } | + | |
- | } | + | } catch (PDOException $e) { |
- | } | + | |
- | $db->sql_freeresult(); | + | } |
- | + | try { | |
- | return $return; | + | |
+ | } catch (PDOException $e) { | ||
+ | trigger_error($e-> | ||
+ | } | ||
+ | try { | ||
+ | $db-> | ||
+ | } catch (PDOException $e) { | ||
+ | trigger_error($e-> | ||
+ | } | ||
+ | try { | ||
+ | $db-> | ||
+ | } catch (PDOException $e) { | ||
+ | trigger_error($e-> | ||
+ | } | ||
+ | |||
+ | // Sửa lại các bảng | ||
+ | try { | ||
+ | $db-> | ||
+ | $db-> | ||
+ | } catch (PDOException $e) { | ||
+ | trigger_error($e-> | ||
+ | } | ||
+ | try { | ||
+ | $db-> | ||
+ | $db->query("ALTER TABLE " . $table_prefix | ||
+ | } catch (PDOException $e) { | ||
+ | trigger_error($e-> | ||
+ | } | ||
+ | |||
+ | // Cập nhật chasert từng cột của các bảng | ||
+ | $array_table | ||
+ | |||
+ | foreach ($array_table as $table) { | ||
+ | $sql = "SHOW FULL COLUMNS FROM " . $table_prefix | ||
+ | $result = $db-> | ||
+ | |||
+ | while($row = $result-> | ||
+ | if($row[' | ||
+ | try { | ||
+ | $db-> | ||
+ | " | ||
+ | | ||
+ | } catch (PDOException $e) { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return $return; | ||
} | } | ||
</ | </ | ||
Dòng 414: | Dòng 488: | ||
====== Gói nâng cấp mẫu ====== | ====== Gói nâng cấp mẫu ====== | ||
- | Tham khảo gói nâng cấp module | + | Tham khảo gói nâng cấp module |
+ | |||
+ | ====== Một số ghi chú ====== | ||
+ | |||
+ | Kể từ phiên bản 4.2.01, thay vì viết | ||
+ | |||
+ | <code php> | ||
+ | // Duyệt tất cả các ngôn ngữ | ||
+ | $language_query = $db-> | ||
+ | while (list ($lang) = $language_query-> | ||
+ | </ | ||
+ | |||
+ | Ta chỉ cần dùng | ||
+ | |||
+ | <code php> | ||
+ | foreach ($global_config[' | ||
+ | </ | ||
+ | > Chú ý: Nếu trong function cần kiểm tra gọi $global_config |
programming4/moduleupdate.1466066359.txt.gz · Sửa đổi lần cuối: 2016/06/16 15:39 bởi hoaquynhtim99