#170279 gửi bởi hongoctrien
Ngày 02 Tháng 07 2015 , 11:48
Để nâng cấp module từ NukeViet 3.4 lên NukeViet 4 bạn có thể sử dụng module nâng cấp. Module c43to40 đã được phát hành miễn phí tại github.

Bộ công cụ này cho phép nâng cấp module, chuyển đổi CSDL của các module hệ thống từ phiên bản NukeViet 3.4 lên NukeViet 4.0.

- Link download file Zip: https://github.com/nukeviet/module_c34to40/archive/master.zip
- Khi tải code từ github, cấu trúc thư mục không giống với các gói module của NukeViet, nên bạn cầu giải nén và cài đặt bằng tay.
- Bạn cần cài module này lên site sử dụng NukeViet 4 (Nên dùng trên localhost), sau đó truy cập module (bên ngoài site) để sử dụng.

1. Hướng dẫn nâng cấp module NukeViet 3 lên NukeViet 4

Bạn cần hiểu rõ, bản chất của công cụ này không hỗ trợ nâng cấp tự động 100%, mà bạn cần phải can thiệp bằng kiến thức của mình, ở những nơi mà công cụ không thể xử lý tự động theo các gợi ý sau khi hoàn tất việc nâng cấp.

1. Cần kiểm tra lại tất cả các chỗ dùng SQL có câu lệnh: INSERT, UPDATE, DELETE: nếu câu lệnh nào cần xác định số kết quả trả về thì nên thay bằng thương thức PDO::exec
2. Kiểm tra lại tất cả các chỗ có //$xxx->closeCursor(); và thay thế đúng bằng $result->closeCursor(); tùy theo các đoạn code viết bên trên.
3. Kiểm tra lại tất cả các chỗ có $db->sql_affectedrows(); Nếu trên đó có câu lệnh $db->query( $sql ); thì hãy xóa dòng $db->query( $sql ); và sửa $db->sql_affectedrows() thành $db->exec( $sql );
4. Không sử dụng SQL REPLACE, bởi Oracle không hỗ trợ REPLACE
5. Sử dụng PDOStatement::rowCount để đếm số kết quả trả về.
6. Nên thay thế UNIX_TIMESTAMP() bằng biến NV_CURRENTTIME trong PHP.
7. Để module chạy được trên các loại CSDL khác cần bỏ dầu nháy ` trong các đoạn truy vấn CSDL.
8. Chức năng phân quyền đã thay đổi, cụ thể không còn hàm nv_set_allow mà thay vào đó là hàm nv_user_in_groups, cần xóa các trường who_view nếu có.
9. Chú ý đường dẫn trong admin. Ở phiên bản mới đã được thêm vào biến lang.
10. Tìm và thay thế các đoạn javascript sử dụng nv_ajax thay bằng ajax của jquery.


Sau khi cài đặt module:
- Copy module nukeviet 3.4 đã giải nén vào thư mục tmp/module-convert (Cần tạo thư mục nếu chưa tồn tại). Nếu trên linux, bạn cần phân quyền ghi cho tất cả các tập tin trong thư mục này, bởi quá trình xử lý sẽ can thiệp đến nội dung tập tin.
Ví dụ: Tôi nâng cấp module music, thì khi đó phải tồn tại file: tmp/module-convert/modules/music/version.php

- Truy cập vào địa chỉ http:/domain/c34to40/. Hệ thống sẽ tiếp tục quá trình tự động nâng cấp trong một khoảng thời gian ngắn, sau khi hoàn thành, màn hình sẽ hiển thị kết quả thay đổi.

Các công việc sau khi nâng cấp:
- Cài mới module, kiểm tra lại toàn bộ chức năng.
- Nếu phát hiện lỗi, xem lại 10 ghi chú bên trên và tiến hành kiểm tra, sửa đổi thủ công.
- Kiểm tra cho đến khi không còn lỗi.

2. Hướng dẫn nâng cấp hệ thống từ NukeViet 3 lên NukeViet 4

Ở phiên bản NukeViet 4, nhân hệ thống thay đổi đáng kể so với NukeViet 3, vậy nên BQT khuyến khích người dùng thay mới hoàn toàn code, không hỗ trợ nâng cấp module mà chỉ hỗ trợ chuyển đỗi dữ liệu các module hệ thống.

Lưu ý trước khi thực hiện:
- Cài đặt NukeViet 4 (phiên bản mới nhất) và đăng nhập quản trị tối cao.
- Import các bảng dữ liệu module NukeViet 3 vào CSDL chứa các bảng của NukeViet 4
- Mở modules/c34to40/function.php. Tìm đến dòng define( 'NV3_PREFIX', 'nv3' ); và thay ‘nv3’ bằng tiếp đầu tố bảng dữ liệu NukeViet 3 của bạn.

2.1. Nâng cấp dữ liệu module Users (Tài khoản)
- Xóa hết tất cả tài khoản thành viên (nếu có), chỉ dữ lại tài khoản quản trị tối cao.
- Truy cập đường dẫn http:/domain/c34to40/users/
- Chọn module muốn nâng cấp (users), sau đó nhấn “Thực hiện nâng cấp”
- Đợi đến khi nhận được thông báo thành công.

2.2. Nâng cấp dữ liệu module News (Tin tức)
- Xóa hết tất cả dữ liệu module news hoặc module ảo của news (nếu có) (Có thể thực hiện thao tác “Cài lại”)
- Copy thư mục uploads/news (hoặc uploads/module-ao-news) ở NukeViet 3 vào thư mục tương ứng của NukeViet 4
- Truy cập đường dẫn http:/domain/c34to40/news/
- Chọn module lấy dữ liệu (Module của NukeViet 3), sau đó chọn module muốn nâng cấp (ở NukeViet 4), sau đó nhấn “Thực hiện nâng cấp”
- Đợi đến khi nhận được thông báo thành công.

2.3. Nâng cấp dữ liệu module Download
- Xóa hết tất cả dữ liệu module download hoặc module ảo của download (nếu có) (Có thể thực hiện thao tác “Cài lại”)
- Copy thư mục uploads/download (hoặc uploads/module-ao-download) ở NukeViet 3 vào thư mục tương ứng của NukeViet 4
- Truy cập đường dẫn http:/domain/c34to40/download/
- Chọn module lấy dữ liệu (Module của NukeViet 3), sau đó chọn module muốn nâng cấp (ở NukeViet 4), sau đó nhấn “Thực hiện nâng cấp”
- Đợi đến khi nhận được thông báo thành công.

2.4. Nâng cấp dữ liệu module Shops
- Xóa hết tất cả dữ liệu module shops hoặc module ảo của shops (nếu có) (Có thể thực hiện thao tác “Cài lại”)
- Copy thư mục uploads/shops (hoặc uploads/module-ao-shops) ở NukeViet 3 vào thư mục tương ứng của NukeViet 4
- Truy cập đường dẫn http:/domain/c34to40/shop/
- Chọn module lấy dữ liệu (Module của NukeViet 3), sau đó chọn module muốn nâng cấp (ở NukeViet 4), sau đó nhấn “Thực hiện nâng cấp”
- Đợi đến khi nhận được thông báo thành công.

2.5. Nâng cấp các loại dữ liệu khác
- Chuyển dữ liệu bảng counter (lượt truy cập)
- Chuyển dữ liệu bảng searchkeys (từ khóa tìm kiếm)
- Chuyển dữ liệu bảng referer_stats (số liệu thống kê)
- Truy cập đường dẫn http:/domain/c34to40/other_db/
- Đợi đến khi nhận được thông báo thành công.

Nguồn bài viết: http://mynukeviet.net/Kien-thuc-lap-tri ... -4-18.html

Hỏi nhanh đáp gọn tất tần tật mọi thứ liên quan đến NukeViet ==> https://mynukeviet.net/hoi-dap/
#170283 gửi bởi dangdinhtu
Ngày 02 Tháng 07 2015 , 13:27
Module news việc nâng cấp sẽ có thể dẫn tới trắng trang, lặp hình ảnh, do số lượng bài viết rất lớn vòng lặp sẽ chết giữa chừng đây là điều tối kị. Tôi đã có đề xuất sử dụng vòng lặp thông qua ajax để giảm bớt gánh nặng này, nhưng xem ra vấn đề vẫn không được giải quyết, Chưa có chức năng convert topic, comment cho module này

Diễn đàn Nukeviet mới do Mình và Nhím thủ lĩnh thành lập các bạn ghé qua học tập trao đổi nhé https://forum.nuke.vn/
#170288 gửi bởi anhyeuviolet
Ngày 02 Tháng 07 2015 , 20:47
dangdinhtu đã viết:1. Nhìn sơ qua code có thể thấy function users convert không chuẩn về userid vì nó được sử dụng ở nhiều modules nếu làm theo kiểu insert như vậy userid sẽ bị lệch dẫn tới thông tin bị sai lệch hoàn toàn. và còn chưa rõ là sau khi nâng cấp như này thành viên có đăng nhập được không nữa :-S
2. Module news việc nâng cấp sẽ có thể dẫn tới trắng trang, lặp hình ảnh, do số lượng bài viết rất lớn vòng lặp sẽ chết giữa chừng đây là điều tối kị. Tôi đã có đề xuất sử dụng vòng lặp thông qua ajax để giảm bớt gánh nặng này, nhưng xem ra vấn đề vẫn không được giải quyết, Chưa có chức năng convert topic, comment cho module này


Vấn đề thứ 1 thì em chưa để ý lắm, vì site em có mình em. Nhưng vấn đề 2 thì đã trả qua và nó khá nghiêm trọng.
Chỉ cần news chứa tầm 1000 bài viết là site đã tắc tị ko convert nổi rồi, nói gì đến các site vài chục ngàn tin.
Trước khi dùng Xenforo, họ có cơ chế khi Upgrade như anh Tứ nói ( hay như bên MySQL Dumper ) là dùng các biện pháp Ajax để hỗ trợ. Các cái này đều dùng để chuyển cho các DB rất to đều OK ( Xen thì vài GB Database mà :) )


Ngoài ra, ngoài nội dung và chuyên mục được chuyển, thì hầu như các trường hợp của tags, source, comment ... đều ko được convert trọn vẹn sang modules mới.
Riêng với tags, mình từng báo lỗi trường hợp tags bị lỗi thế nào đó làm toàn bộ quá trình convert bị dừng.
Trên Git, mình cũng báo lỗi modules convert này khá nhiều, ko biết đã điều chỉnh lại hết chưa :-SS

Cổng nhôm đúc Nhật Bản
http://www.asuzac-acm.com.vn/vi/acm/cong-nhom-duc/
#170294 gửi bởi dangdinhtu
Ngày 02 Tháng 07 2015 , 23:13
@anhyeuviolet vấn đề số 1 Trường website có hàng chục ngàn thành viên. Việc nâng cấp mà thành viên không đăng nhập được thì coi như toi. convert mà không hoàn
trường hợp website có khả năng xoá thành viên nào đó thì việc auto PRIMARY KEY sẽ bị nhẩy. Trong khi func users này thì lại làm theo quy tắc đó dẫn tới userid của thành viên bị loạn ảnh hưởng tới các module khác có thể bị nhận nhầm thành viên

Diễn đàn Nukeviet mới do Mình và Nhím thủ lĩnh thành lập các bạn ghé qua học tập trao đổi nhé https://forum.nuke.vn/
#170920 gửi bởi anhutbeo
Ngày 20 Tháng 07 2015 , 22:24
Mình chủ yếu nâng cấp data của news là chính, nhưng gặp phải vấn đề là không biết nó bị gì? mình mới test trên localhost.
News của mình có khoảng 1500 bài viết, khi cover trên localhost thì nó chạy ra trang trắng. kiểm tra news bản 4.0 thì được khoảng 340 bài, còn hơn 1000 bài thì kg cover thành công, Mình xóa và làm lần 2 thì cũng bị trang trắng và được khoảng 400 bài. lần thứ 3 mình thử thì ít hơn, khoảng 200 bài.
Mình test 1 site khác, news có dưới 300 bài viết thì ok hết, nhưng bài viết news nhiều thì nó kg cover hết được, mong chủ thớt chỉ giáo thêm ạ. Xin cảm ơn
#170930 gửi bởi hoandateh
Ngày 21 Tháng 07 2015 , 01:33
Lấy thử một site nuke3 nâng cấp lên thì khi thực hiện module news bị lỗi
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'quocoai.nv3_vi_news_cat' doesn't exist

Cái tiếp đầu tố bảng dữ liệu cũ là vgtmedia còn cái mới là thcsqo chứ không sử dụng là nv3
#170964 gửi bởi billygoat
Ngày 22 Tháng 07 2015 , 04:03
Mỗi lần nâng cấp code (chuyển hoàn toàn) là mỗi lần đau đầu và lo lắng, cứ sử dụng CMS thì 10 như 10 sẽ gặp tình trạng này, ranh giới để chuyển đổi nâng cấp e là chỉ dành cho các webmaster có nhiều năng ngâm cứu và luyệt tập kỹ năng chuyên môn code, còn với hầu hết end-user hay các Fan (như mình) thì ngồi ngó chứ chuyên môn đâu ra để "xúc" một mớ thao tác trên (thiếu hình ảnh minh họa sinh động và quá nhiều thuật ngữ chuyên môn). Nếu có thể Nukeviet cần đưa ra giải pháp nâng cấp với "thuật ngữ" phổ cập và tính năng động trong "hình ảnh hóa" các bước và thao tác thực hiện - như vậy sẽ tuyệt hơn 8)

* trong phần nâng cấp này chưa / hay không nhắc đến Module About ?

hết ham ~O)
https://hoasenvang.vn | https://hoasenvang.org
#170965 gửi bởi anhyeuviolet
Ngày 22 Tháng 07 2015 , 04:08
BILLYGOAT đã viết:* trong phần nâng cấp này chưa / hay không nhắc đến Module About ?

Module này được thay thế bởi Page nhé bạn !

Cổng nhôm đúc Nhật Bản
http://www.asuzac-acm.com.vn/vi/acm/cong-nhom-duc/