Hướng dẫn thay đổi tên function module

Thứ năm - 30/04/2015 23:47
Một chức năng mới được bổ sung trong NukeViet 4, là khả năng thay đổi alias func của module. Bài viết này mình xin giới thiệu cách lập trình và cách sử dụng. Chức năng này rất tốt cho SEO.
Để tiện trong việc hướng dẫn, mình lấy module statistics làm ví dụ, các module khác tương tự.

1. Sử dụng.
Mặc định, khi muốn xem "Thống kê truy cập theo quốc gia", người dùng sẽ truy cập đường dẫn http://domain/statistics/allcountries/

Tương tự cho các phương án khác:
- Theo đường dẫn đến site: http://domain/statistics/allreferers/
- Theo trình duyệt: http://domain/statistics/allbrowsers/
........

Ở các phiên bản NukeViet 3.4, allcountries là mặc định và không thay đổi được. Với NukeViet 4, chuỗi này có thể thay đổi lại bằng một chuỗi alias (Tùy chỉnh url).

Để thay đổi:

Selection 247
 
- Đăng nhập với quyền quản trị tối cao => Quản lý module
- Click vào tên module, trường hợp này click vào tên module "Thống kê"
- Trong danh sách "Các function thuộc module Thống kê", tại cột alias, click vào tên function (Có hiển thị link, những function không hiển thị link sẽ không thay đổi được, tùy vào cách lập trình sẽ giới thiệu ở phần 2).
- Biểu mẫu "Đổi tên alias "allreferers" của module "Thống kê"" sẽ hiện ra bên dưới, bạn nhập alias mới vào (Theo quy tắc url, chi bao gồm chữ, số, dấu gạch ngang). Ví dụ mình nhập là "theo-quoc-gia". Nhấn "Thực hiện" để lưu lại.
- Bây giờ, đường dẫn xem thông kê theo quốc gia sẽ là http://domain/statistics/theo-quoc-gia/

2. Hướng dẫn lập trình:
Để sử dụng chức năng này, lập trình viên cũng cần phải lưu ý một chút về cách tạo url có liên quan đến tên function.

Một số thay đổi cần lưu ý:
Khai báo function được phép thay đổi alias trong file vestion.php: 
- Mở file modules/ten-module/vestion.php (Trường hơp này là modules/statistics/vestion.php)
- Trong biến mảng 
$module_version, khai báo thêm một khóa "change_alias" lưu danh sách các function được phép thay đổi, cách nhau bởi dấu phẩy. Bạn có thể xem code mẫu tại file modules/statistics/vestion.php.

Thay đổi cách tạo url
- Url không được viết cố định tên function. Ví dụ:
NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=allcountries'

Cách viết đúng:

NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op
NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $module_info['alias']['allcountries']

Chú ý: Việc đăng lại bài viết này trên ở website hoặc các phương tiện truyền thông khác mà không ghi rõ nguồn http://mynukeviet.net - Trung tâm ứng dụng NukeViet là vi phạm bản quyền.

Tổng số điểm của bài viết là: 4 trong 1 đánh giá

Xếp hạng: 4 - 1 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

  • Kenny Nguyễn
    Kenny Nguyễn   02/06/2015 21:08

    Cái này ko dùng trong Admin được nhỉ ?
    Mình có thử làm cho modules đang dùng, tuy vậy thì trong admin nó ko nhận theo alias mới được. Một vài trường hợp khi gửi lệnh bằng JS thì nó nhận sai biến $op nên đành viết cứng.

    • Administrator   02/06/2015 21:35

      @Kenny Nguyễn Đúng ạ, cái này chỉ thiết kế cho bên ngoài, trong ACP không cần thiết.

Trung tâm ứng dụng NukeViet
Ghi rõ nguồn khi sao chép thông tin từ website này.

Powered by NukeViet - a product of VINADES.,JSC