Hướng dẫn nâng cấp module tương thích bản 4.0.29 lên 4.1.00
Về cơ bản, NukeViet 4.1.00 không có thay đổi quá nhiều về mặt cấu trúc so với NukeViet 4 Official, do đó các module sử dụng cho NukeViet 4.1.00 nếu không cần nâng cấp vẫn hoạt động được trên NukeViet 4.1.00. Tuy nhiên, để tối ưu module hơn, cần lưu ý các vấn đề sau:
Nếu module có sử dụng chức năng comment của hệ thống, cần thêm hai cấu hình perpagecomm
và timeoutcomm
bằng cách thêm vào file action:
$sql_create_module[] = "INSERT INTO " . NV_CONFIG_GLOBALTABLE . " (lang, module, config_name, config_value) VALUES ('" . $lang . "', '" . $module_name . "', 'perpagecomm', '5')";
$sql_create_module[] = "INSERT INTO " . NV_CONFIG_GLOBALTABLE . " (lang, module, config_name, config_value) VALUES ('" . $lang . "', '" . $module_name . "', 'timeoutcomm', '360')";
Chú ý:
- perpagecomm là số bình luận trên một trang
- timeoutcomm là thời gian tính bằng giây giữa hai lần gửi bình luận (bằng 0 thì không giới hạn)
Việc này nhằm tối ưu cache, nếu không thực hiện module vẫn hoạt động bình thường.
Tìm trong code module (đặc biệt ở các file `modules/ten-module/funcs/sitemap.php) các phần kiểm tra thời gian cache giống
filemtime(NV_ROOTDIR . '/' . NV_CACHEDIR . '/' . $module_name . '/' . $cacheFile) >= $pa
Nếu có xóa các phần đó, kiểm tra lại biến $pa
theo kiểu $pa = NV_CURRENTTIME - 7200;
, đưa giá trị 7200
thành time-to-live (tham số thứ tư) trong lệnh $nv_Cache->getItem
và $nv_Cache->setItem
.
Ví dụ cụ thể đối với module news:
Mở modules/news/funcs/sitemap.php
tìm
$pa = NV_CURRENTTIME - 7200;
Thay lại thành
$cacheTTL = 7200;
Tìm
if (($cache = $nv_Cache->getItem($module_name, $cacheFile)) != false and filemtime(NV_ROOTDIR . '/' . NV_CACHEDIR . '/' . $module_name . '/' . $cacheFile) >= $pa) {
Thay lại thành
if (($cache = $nv_Cache->getItem($module_name, $cacheFile, $cacheTTL)) != false) {
Tìm
$nv_Cache->setItem($module_name, $cacheFile, $cache);
Thay lại thành
$nv_Cache->setItem($module_name, $cacheFile, $cache, $cacheTTL);
Tại các đoạn có dạng
$(window).load(function () {
Thay lại thành
$(window).on('load', function() {