Loại bỏ tên function trong URL module NukeViet
Trong phạm vi bài viết này mình xin giới thiệu phương án loại bỏ tên function URL trong lập trình module NukeViet
Trường hợp bao gồm func main (Trang chính), viewcat (Xem chủ đề) và viewdetail (Xem chi tiết bài viết).
Trước khi loại bỏ:http://mynukeviet.net/news/viewcat/kien-thuc-lap-trinh-nukeviet/
http://mynukeviet.net/news/viewdetail/loai-bo-ten-function-trong-url/
Sau khi loại bỏ:
http://mynukeviet.net/news/kien-thuc-lap-trinh-nukeviet/
http://mynukeviet.net/news/kien-thuc-lap-trinh-nukeviet/loai-bo-ten-function-trong-url/
Demo: Có thể download module bus-directory xem code,
Sử dụng đoạn mã bên dưới, trong file modules/ten-module/function.php
$post_id = 0; // ID bài viết$cat_id = 0; // ID chủ đề$alias = isset( $array_op[0] ) ? $array_op[0] : '';foreach( $array_cat as $cat ){ // Xây dựng URL chủ đề $array_cat[$cat['id']]['link'] = NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $cat['alias']; if( $alias == $cat['alias'] ) { $cat_id = $cat['id']; }}$alias_url = ''; // alias bài viết$page = 1; // Trang mặc định$per_page = 20; // Số lượng bản ghi trên một trangif( $op == 'main' ){ if( empty( $cat_id ) ) { if( preg_match( '/^page\-([0-9]+)$/', (isset( $array_op[0] ) ? $array_op[0] : ''), $m ) ) { $page = ( int )$m[1]; } } else { if( sizeof( $array_op ) == 2 and preg_match( '/^([a-z0-9\-]+)\-([0-9]+)$/i', $array_op[1], $m1 ) and !preg_match( '/^page\-([0-9]+)$/', $array_op[1], $m2 ) ) { // Nếu thỏa mãn điều kiện này thì là chi tiết bài viết $op = 'viewdetail'; $alias_url = $m1[1]; $post_id = $m1[2]; } else { if( preg_match( '/^page\-([0-9]+)$/', (isset( $array_op[1] ) ? $array_op[1] : ''), $m ) ) { $page = ( int )$m[1]; } $op = 'viewcat'; } }}
Lưu ý:- Sử dụng hàm phân trang có rewrite để phân trang danh sách.
- Trong file modules/ten-module/funcs/viewdetail.php, modules/ten-module/funcs/detail.php bạn tiền hành bắt các biến đã được khởi tạo ở đoạn mã bên trên để xử lý tiếp.
Trường hợp bao gồm func main (Trang chính) và viewdetail (Xem chi tiết bài viết).
Trước khi loại bỏ:http://mynukeviet.net/news/viewdetail/loai-bo-ten-function-trong-url/
Sau khi loại bỏ:
http://mynukeviet.net/news/loai-bo-ten-function-trong-url/
Sử dụng đoạn mã bên dưới, trong file modules/ten-module/function.php
$page = 1; // Trang mặc định$per_page = 20; // Số lượng bản ghi trên 1 trang$id = 0; // ID bài viếtif( $op == 'main' ){ if( sizeof( $array_op ) == 1 ) { if( preg_match( '/^page\-([0-9]+)$/', (isset( $array_op[0] ) ? $array_op[0] : ''), $m ) ) { $page = ( int )$m[1]; } elseif( preg_match( '/^([a-z0-9\-]+)\-([0-9]+)$/i', $array_op[0], $m1 ) and !preg_match( '/^page\-([0-9]+)$/', $array_op[0], $m2 ) ) { $op = 'detail'; $id = $m1[2]; } }}
Lưu ý:- Sử dụng hàm phân trang có rewrite để phân trang danh sách.
- Trong file modules/ten-module/funcs/detail.php bạn tiền hành bắt các biến đã được khởi tạo ở đoạn mã bên trên để xử lý tiếp.
Ý kiến bạn đọc
Bạn cần đăng nhập với tư cách là Thành viên chính thức để có thể bình luận
Những tin mới hơn
Những tin cũ hơn