-
Notifications
You must be signed in to change notification settings - Fork 12
Hướng dẫn nâng cấp module từ NukeViet 4.4.02 lên NukeViet 4.4.03
- $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);
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
(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);