[Share] Module bỏ tên module thứ 2 trên link (News, Shops)

Với bản nukeviet 4 đã cho phép bỏ tên 1 module trên link. Tuy nhiên, các website giới thiệu sản phẩm, các bạn thường gặp khó khăn vì dùng cả module shops và news, khi đó link SEO nó kèm theo tên module làm khách hàng không ưng ý.  Hôm nay VSOFT chia sẽ các bạn module xóa tiếp tên module của module thứ 2

Module hoạt động trên tất cả phiên bản 4.

Hướng dẫn sử dụng:

Chú ý:
- Việc sửa file trong module chỉ áp dụng cho module bỏ link thứ 2 này, đối với module do hệ thống bỏ link không cần sửa thêm.
- Chỉ áp dụng cho module news, shops và tất cả module ảo của 2 module này.
- Khi tạo menu trong admin đến menule này, bạn cần xóa phần nv=news(shops) trong phần link tự động điền.
- Không nên sử dụng đường dẫn domain.com/tên_module_đã_bỏ, vì khi vào đường dẫn này, chức năng sẽ mất tác dụng. Chỉ nên sử dụng domain.com/chuyên_mục_module_bỏ_link
- Alias các chuyên mục của 2 module không được trùng nhau. Nếu trùng sẽ ưu tiên cho module do hệ thống bỏ link.


Bước 1 (*): Cài đặt module, lưu lại cấu hình.
Bước 2 (*): Mở file index.php tìm đoạn

if (isset($site_mods[$module_name]))

Chèn lên trên dòng này đoạn code:

if (file_exists(NV_ROOTDIR . '/del_2module_link.php')) {
        require NV_ROOTDIR . '/del_2module_link.php';
    }



Đến đây module đã hoạt động, kiểm tra bằng cách vào chi tiết 1 bài viết và xóa tên module trên link. Các trường hợp xãy ra:

- Nếu nó chuyển lại về link củ (Link có tên module) -> Thực hiện bước 3
- Nếu vào bình thường, thực hiện bước 4 trở xuống.
- Nếu báo lỗi 404, xem lại phần ghi chú đỏ bên trên.

Bước 3: Không cho chuyển link củ khi đã bật chức năng này:

     - Đối với link xem chi tiết bài viết: Vào file modules\shops(news)\funcs\detail.php
     - Đối với link xem chi tiết chuyên mục: Vào file modules\shops(news)\funcs\viewcat.php

Tìm $base_url_rewrite xóa bỏ 1 phần link bên trong nó

 . '&' . NV_NAME_VARIABLE . '=' . $module_name


Bước 4: Bước này xử lý trường hợp link đang rewrite tự động chuyển sang không rewrite. (Kiểm tra chi tiết tin và chi tiết chuyên mục để rõ hơn).

Mở file includes/functions.php tìm đến đoạn:

if (!in_array($query_array[NV_LANG_VARIABLE], $allow_langkeys) or (isset($query_array[NV_NAME_VARIABLE]) and (!isset($query_array_keys[1]) or $query_array_keys[1] != NV_NAME_VARIABLE)) or (isset($query_array[NV_OP_VARIABLE]) and (!isset($query_array_keys[2]) or $query_array_keys[2] != NV_OP_VARIABLE))) {
            return $matches[0];
        }

Comment hoặc xóa để vô hiệu hóa. 

//return $matches[0];


Bước 5: Xử lý lỗi link bài viết vẫn còn module_name

Kiểm tra phần nào trong link còn $module_name thì xóa phần ". '&' . NV_NAME_VARIABLE . '=' . $module_name" đi là xong. Đặt biệt chú ý các block Global khi hoạt động ở module khác sẽ không tự bỏ được, bạn cần vào code xóa nó bằng tay.

Sau khi cấu hình xong và hoạt động ổn định, các bạn có thể xóa module để trách trường hợp khách hàng vào chỉnh sửa gây ra lỗi không đáng có. Việc xóa module không ảnh hưởng tới chức năng đã cấu hình.

Chúc các bạn thành công. Mọi đóng góp vui lòng liên hệ: Mobile/Zalo/Viber: 0977.47.47.55. Website: vsoft.com.vn

Tải file

 

  Ý kiến bạn đọc

Mã bảo mật