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 trang
if( $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ết
if( $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.
(Nguồn: Mynukeviet.net)
0 Comments