Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet - Block Nukeviet - Diễn đàn Nukeviet

https://nukevietnam.com

Hướng dẫn cập nhật từ NukeViet 4.4.00, 4.4.01, 4.4.02 lên NukeViet 4.4.03

Nếu phiên bản NukeViet 4 của bạn nhỏ hơn 4.4.00 bạn cần tìm hướng dẫn nâng cấp lên phiên bản 4.4.00 trước khi tiến hành các bước tiếp theo.
Hướng dẫn cập nhật từ NukeViet 4.4.00, 4.4.01, 4.4.02 lên NukeViet 4.4.03

Nâng cấp hệ thống:

Bước 1: Chuẩn bị trước khi cập nhật:

  • Backup toàn bộ CSDL và các file code, tránh tình trạng có vấn đề phát sinh site không hoạt động được sau update.
  • Nếu site của bạn đã tùy biến các thư mục bằng cách sửa file includes/constants.php hãy đưa về mặc định, sau nâng cấp tiến hành cấu hình trở lại.
  • Nếu bạn có cấu hình FTP trong quản trị, vui lòng kiểm tra lại các thông số cho đúng hoặc xóa cấu hình. Nếu cấu hình sai sẽ dẫn tới cập nhật thất bại.

Bước 2: Thực hiện cập nhật:

Chú ý: Để đảm bảo dễ dàng xử lý trong trường hợp xảy ra sự số trong và sau nâng cấp, ngoài các công việc được khuyến nghị ở bước 1, bạn nên thực hiện thêm các thao tác sau nếu có thể:

  • Thực hiện dọn dẹp hệ thống để xóa các cache, file log. Bạn có thể thực hiện việc này bằng thao tác: Tại khu vực quản trị chọn Công cụ web => Dọn dẹp hệ thống, nhấp vào ô check ở dòng Làm sạch cache và Xóa các thông báo lỗi sau đó nhấp Thực hiện
  • Thực hiện cập nhật bằng một trong các cách bên dưới.
  • Nếu trong quá trình cập nhật hoặc sau khi cập nhật website xảy ra sự cố hãy sao chép nội dung trong file có dạng dd-mm-yyyy_error_log.log ở thư mục data/logs/error_logs/ để gửi hỗ trợ 

Cập nhật tự động:

Đăng nhập quản trị site dưới quyền admin tối cao, di chuyển vào khu vực Công cụ web => Kiểm tra phiên bản, tại đây nhận thông báo cập nhật và làm theo các bước hệ thống hướng dẫn.

Nếu thất bại hãy thử cách cập nhật thủ công bên dưới.

Nếu trong quá trình cập nhật bị đẩy ra, bạn đăng nhập lại quản trị để làm theo hướng dẫn (Hệ thống báo Xóa gói cập nhật do không tương thích, Bạn hãy xóa để tiếp tục vânh hành site)

Cập nhật thủ công:

Download gói cập nhật đính kèm Giải nén và Upload các file trong gói cập nhật với cấu trúc của NukeViet, sau đó vào admin để tiến hành cập nhật.

Bước 3: Cấu hình lại site.

  • Nếu site có sử dụng các thư viện bên ngoài như phpoffice/phpspreadsheet thông qua composer, bạn cần khai báo để composer cập nhật lại
  • Truy cập phần Cấu hình => Thiết lập an ninh để thiết lập chức năng Cross-Site và Giới hạn tên miền theo nhu cầu.

Bước 4: Hướng dẫn nâng cấp module từ NukeViet 4.4.02 lên NukeViet 4.4.03

Nếu site của bạn sử dụng module không phải mặc định thì thực hiện cập nhật theo hướng dẫn sau:

1. URL chính tắc: $page_url, $base_url và $canonicalUrl

  • $page_url là đường dẫn tuyệt đối từ thư mục gốc của site đến trang đang xử lý, bao gồm cả số trang (nếu có).
  • $base_url là đường dẫn tuyệt đối từ thư mục gốc của site đến trang đang xử lý, không bao gồm số trang.
  • $canonicalUrl là url chính tắc đến trang đang xử lý, là tổ hợp của NV_MAIN_DOMAIN và $page_url.

Các biến $page_url và $canonicalUrl cần được xác định ở tất cả các khu vực hiển thị ra bên ngoài site, biến $base_url cần được xác định nếu khu vực đó có phân trang.

Bắt buộc sử dụng hàm getCanonicalUrl để xác định $canonicalUrl. Hàm này cũng có chức năng kiểm tra chuỗi truy vấn REQUEST_URI với url chính tắc. (Chi tiết về hàm getCanonicalUrl tại https://github.com/nukeviet/nukeviet/blob/38a817001e7961f08379e5a7a90ede0596a3084a/includes/functions.php#L1832-L1861)

Ví dụ về thiết lập URL chính tắc:

$page_url = $base_url = NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name;$page = 1;if (isset($array_op[0]) and substr($array_op[0], 0, 5) == 'page-') {    $page = intval(substr($array_op[0], 5));}if ($page > 1) {    $page_url .= '&' . NV_OP_VARIABLE . '=page-' . $page;}$canonicalUrl = getCanonicalUrl($page_url, true, true);

2.Đánh số trang

Bắt buộc sử dụng betweenURLs - hàm kiểm tra việc đánh số trang và xác định trang trước, trang sau. Ở trang cần đánh số trang, sau khi tính được tổng số item để chia trang xong, cần thêm ngay xuống dưới:

$urlappend = '&' . NV_OP_VARIABLE . '=page-';betweenURLs($page, ceil($num_items/$per_page), $base_url, $urlappend, $prevPage, $nextPage);

Trong đó:

  • $page: Số trang hiện tại được xác định trước đó
  • $num_items: Tổng số item để chia trang được xác định bằng cách đọc CSDL trước đó
  • $per_page: Số item trên 1 trang
  • $base_url: Đường dẫn từ thư mục gốc đến trang đang xử lý (không có page)
  • $urlappend: phần thêm vào $base_url khi đánh số trang (có thể là '&' . NV_OP_VARIABLE . '=page-', hay '/page-', hay '&page='...)
  • $prevPage và $nextPage: là 2 biến toàn cục được cập nhật sau khi gọi hàm betweenURLs Xem ví dụ tại: https://github.com/nukeviet/nukeviet/blob/38a817001e7961f08379e5a7a90ede0596a3084a/modules/news/funcs/main.php#L64

3. Lỗi Cross-site Scripting (XSS) tiềm ẩn

(Việc chỉnh sửa theo hướng dẫn dưới đây không còn là bắt buộc sau khi cập nhật ở đây - 22/04/2022)

Tìm tất cả:

nv_rss_generate($channel, $items);

Thay bằng:

$atomlink = NV_BASE_SITEURL . "index.php?" . NV_LANG_VARIABLE . "=" . NV_LANG_DATA . "&" . NV_NAME_VARIABLE . "=" . $module_name . "&" . NV_OP_VARIABLE . "=" . $module_info['alias']['rss'];nv_rss_generate($channel, $items, $atomlink);
Bạn đã không sử dụng site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây