This commit is contained in:
2025-11-24 13:08:40 +07:00
15 changed files with 132 additions and 51 deletions

View File

@@ -24,18 +24,35 @@ function _get_menu_list() {
$item_menu = include_once __DIR__."/menu_item/".$item.".php"; $item_menu = include_once __DIR__."/menu_item/".$item.".php";
// skip not enabled // skip not enabled
if(!$item_menu['enable']) continue; if(!$item_menu['enable']) {
continue;
}
// skip not enabled children // skip not enabled children
$item_menu_children_enabled = array_filter($item_menu['menu'], function ($menu_child) { return $menu_child['enable'];}); $item_menu_children_enabled = array_filter($item_menu['menu'], function ($menu_child) { return $menu_child['enable'];});
if(!sizeof($item_menu_children_enabled)) continue; if(!sizeof($item_menu_children_enabled)) {
continue;
}
// reset menu for $item_menu $menu_list[] = [
$item_menu['menu'] = $item_menu_children_enabled; 'id' => $item,
'name' => $item_menu['name'],
$menu_list[$item] = $item_menu; 'icon_class' => $item_menu['icon_class'] ?? '',
'url' => $item_menu['url'],
'menu' => array_map(function ($menu_child) {
return [
//'module' => $menu_child['module'],
//'view' => $menu_child['view'],
'id' => $menu_child['id'],
'name' => $menu_child['name'],
'icon_class' => $menu_child['icon_class'] ?? '',
'url' => $menu_child['url'],
];
}, $item_menu_children_enabled),
];
} }
//debug_var($menu_list);
return $menu_list; return $menu_list;
} }

View File

@@ -3,6 +3,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Nội dung", "name" => "Nội dung",
"icon_class" => 'iconify lucide--users tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
@@ -12,6 +13,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'article/home', 'id' => 'article/home',
'name' => 'Tin bài', 'name' => 'Tin bài',
"icon_class" => '',
'url' => '/admin/article', 'url' => '/admin/article',
), ),
@@ -21,6 +23,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'media/home', 'id' => 'media/home',
'name' => 'Thư viện file Media', 'name' => 'Thư viện file Media',
"icon_class" => '',
'url' => '/admin/media', 'url' => '/admin/media',
), ),
@@ -30,6 +33,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'page/home', 'id' => 'page/home',
'name' => 'Nội dung cố định', 'name' => 'Nội dung cố định',
"icon_class" => '',
'url' => '/admin/page', 'url' => '/admin/page',
), ),
@@ -39,6 +43,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'album/home', 'id' => 'album/home',
'name' => 'Thư viện ảnh', 'name' => 'Thư viện ảnh',
"icon_class" => '',
'url' => '/admin/album', 'url' => '/admin/album',
), ),
@@ -48,6 +53,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'video/home', 'id' => 'video/home',
'name' => 'Video', 'name' => 'Video',
"icon_class" => '',
'url' => '/admin/video', 'url' => '/admin/video',
), ),
), ),

View File

@@ -2,8 +2,8 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Khách hàng", "name" => "Khách hàng",
"icon_class" => '',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(
@@ -12,6 +12,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'customer/home', 'id' => 'customer/home',
'name' => 'Danh sách khách hàng', 'name' => 'Danh sách khách hàng',
"icon_class" => '',
'url' => '/admin/customer', 'url' => '/admin/customer',
), ),
@@ -21,6 +22,7 @@ return array(
'view' => 'customer-group', 'view' => 'customer-group',
'id' => 'customer/customer-group', 'id' => 'customer/customer-group',
'name' => 'Nhóm khách hàng', 'name' => 'Nhóm khách hàng',
"icon_class" => '',
'url' => '/admin/customer/customer-group', 'url' => '/admin/customer/customer-group',
),*/ ),*/
@@ -30,6 +32,7 @@ return array(
'view' => 'customer-contact', 'view' => 'customer-contact',
'id' => 'customer/customer-contact', 'id' => 'customer/customer-contact',
'name' => 'Khách hàng liên hệ', 'name' => 'Khách hàng liên hệ',
"icon_class" => '',
'url' => '/admin/customer/customer-contact', 'url' => '/admin/customer/customer-contact',
), ),
@@ -39,6 +42,7 @@ return array(
'view' => 'comment', 'view' => 'comment',
'id' => 'customer/comment', 'id' => 'customer/comment',
'name' => 'Tổng hợp trao đổi', 'name' => 'Tổng hợp trao đổi',
"icon_class" => '',
'url' => '/admin/customer/comment', 'url' => '/admin/customer/comment',
), ),
@@ -48,6 +52,7 @@ return array(
'view' => 'review', 'view' => 'review',
'id' => 'customer/review', 'id' => 'customer/review',
'name' => 'Tổng hợp Đánh giá', 'name' => 'Tổng hợp Đánh giá',
"icon_class" => '',
'url' => '/admin/customer/review', 'url' => '/admin/customer/review',
), ),
@@ -57,6 +62,7 @@ return array(
'view' => 'customer-review', 'view' => 'customer-review',
'id' => 'customer/customer-review', 'id' => 'customer/customer-review',
'name' => 'Khách hàng góp ý', 'name' => 'Khách hàng góp ý',
"icon_class" => '',
'url' => '/admin/customer/customer-review', 'url' => '/admin/customer/customer-review',
), ),
@@ -66,6 +72,7 @@ return array(
'view' => 'customer-newsletter', 'view' => 'customer-newsletter',
'id' => 'customer/customer-newsletter', 'id' => 'customer/customer-newsletter',
'name' => 'Khách hàng nhận bản tin', 'name' => 'Khách hàng nhận bản tin',
"icon_class" => '',
'url' => '/admin/customer/customer-newsletter', 'url' => '/admin/customer/customer-newsletter',
), ),

View File

@@ -3,6 +3,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Đại lý", "name" => "Đại lý",
"icon_class" => 'iconify lucide--handshake tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
0 => array( 0 => array(
@@ -11,6 +12,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'distributor/home', 'id' => 'distributor/home',
'name' => 'Danh sách', 'name' => 'Danh sách',
"icon_class" => '',
'url' => '/admin/distributor', 'url' => '/admin/distributor',
), ),
), ),

View File

@@ -3,6 +3,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Tuyển dụng", "name" => "Tuyển dụng",
"icon_class" => 'iconify lucide--megaphone tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(

View File

@@ -3,6 +3,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Marketing", "name" => "Marketing",
"icon_class" => 'iconify lucide--newspaper tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(
@@ -11,6 +12,7 @@ return array(
'view' => 'promotion', 'view' => 'promotion',
'id' => 'marketing/promotion', 'id' => 'marketing/promotion',
'name' => 'Khuyến mại theo sản phẩm', 'name' => 'Khuyến mại theo sản phẩm',
"icon_class" => '',
'url' => '/admin/marketing/promotion', 'url' => '/admin/marketing/promotion',
), ),
@@ -20,6 +22,7 @@ return array(
'view' => 'coupon', 'view' => 'coupon',
'id' => 'marketing/coupon', 'id' => 'marketing/coupon',
'name' => 'Phiếu giảm giá - Voucher', 'name' => 'Phiếu giảm giá - Voucher',
"icon_class" => '',
'url' => '/admin/marketing/coupon', 'url' => '/admin/marketing/coupon',
), ),
@@ -29,6 +32,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'banner/home', 'id' => 'banner/home',
'name' => 'Danh sách banner', 'name' => 'Danh sách banner',
"icon_class" => '',
'url' => '/admin/banner', 'url' => '/admin/banner',
), ),
@@ -38,6 +42,7 @@ return array(
'view' => 'store-design', 'view' => 'store-design',
'id' => 'system/store-design', 'id' => 'system/store-design',
'name' => 'Banner pop-up', 'name' => 'Banner pop-up',
"icon_class" => '',
'url' => '/admin/system/store-design?section=popup', 'url' => '/admin/system/store-design?section=popup',
), ),
@@ -47,6 +52,7 @@ return array(
'view' => 'poster-upload', 'view' => 'poster-upload',
'id' => 'marketing/poster-upload', 'id' => 'marketing/poster-upload',
'name' => 'Poster', 'name' => 'Poster',
"icon_class" => '',
'url' => '/admin/marketing/poster-upload', 'url' => '/admin/marketing/poster-upload',
), ),
@@ -56,6 +62,7 @@ return array(
'view' => 'store-design', 'view' => 'store-design',
'id' => 'system/store-design', 'id' => 'system/store-design',
'name' => 'Hình nền website', 'name' => 'Hình nền website',
"icon_class" => '',
'url' => '/admin/system/store-design?section=background', 'url' => '/admin/system/store-design?section=background',
),*/ ),*/
@@ -65,6 +72,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'email/home', 'id' => 'email/home',
'name' => 'Email', 'name' => 'Email',
"icon_class" => '',
'url' => '/admin/email', 'url' => '/admin/email',
),*/ ),*/
@@ -74,6 +82,7 @@ return array(
'view' => 'meta-list', 'view' => 'meta-list',
'id' => 'url/meta-list', 'id' => 'url/meta-list',
'name' => 'Sửa thông tin URL', 'name' => 'Sửa thông tin URL',
"icon_class" => '',
'url' => '/admin/url/meta-list', 'url' => '/admin/url/meta-list',
), ),
@@ -83,6 +92,7 @@ return array(
'view' => 'url-seo', 'view' => 'url-seo',
'id' => 'url/url-seo', 'id' => 'url/url-seo',
'name' => 'Link SEO', 'name' => 'Link SEO',
"icon_class" => '',
'url' => '/admin/url/url-seo', 'url' => '/admin/url/url-seo',
), ),
@@ -92,6 +102,7 @@ return array(
'view' => 'feed', 'view' => 'feed',
'id' => 'marketing/feed', 'id' => 'marketing/feed',
'name' => 'Facebook/Google Feed', 'name' => 'Facebook/Google Feed',
"icon_class" => '',
'url' => '/admin/marketing/feed', 'url' => '/admin/marketing/feed',
), ),
@@ -101,6 +112,7 @@ return array(
'view' => 'product-offer', 'view' => 'product-offer',
'id' => 'marketing/product-offer', 'id' => 'marketing/product-offer',
'name' => 'Cài biểu tượng giảm giá', 'name' => 'Cài biểu tượng giảm giá',
"icon_class" => '',
'url' => '/admin/marketing/product-offer', 'url' => '/admin/marketing/product-offer',
), ),
@@ -119,6 +131,7 @@ return array(
'view' => 'program', 'view' => 'program',
'id' => 'marketing/program', 'id' => 'marketing/program',
'name' => 'Chương trình khuyến mại', 'name' => 'Chương trình khuyến mại',
"icon_class" => '',
'url' => '/admin/marketing/program', 'url' => '/admin/marketing/program',
), ),
@@ -128,6 +141,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'deal/home', 'id' => 'deal/home',
'name' => 'Deal/giờ vàng', 'name' => 'Deal/giờ vàng',
"icon_class" => '',
'url' => '/admin/deal', 'url' => '/admin/deal',
), ),
@@ -137,6 +151,7 @@ return array(
'view' => 'combo-deal', 'view' => 'combo-deal',
'id' => 'marketing/combo-deal', 'id' => 'marketing/combo-deal',
'name' => 'Bán Combo', 'name' => 'Bán Combo',
"icon_class" => '',
'url' => '/admin/marketing/combo-deal', 'url' => '/admin/marketing/combo-deal',
), ),
@@ -146,6 +161,7 @@ return array(
'view' => 'conditional-promotion', 'view' => 'conditional-promotion',
'id' => 'marketing/conditional-promotion', 'id' => 'marketing/conditional-promotion',
'name' => 'Khuyến mại BuildPC', 'name' => 'Khuyến mại BuildPC',
"icon_class" => '',
'url' => '/admin/marketing/conditional-promotion', 'url' => '/admin/marketing/conditional-promotion',
), ),
@@ -155,6 +171,7 @@ return array(
'view' => 'live-support-per-category', 'view' => 'live-support-per-category',
'id' => 'marketing/live-support-per-category', 'id' => 'marketing/live-support-per-category',
'name' => 'Hỗ trợ theo từng danh mục', 'name' => 'Hỗ trợ theo từng danh mục',
"icon_class" => '',
'url' => '/admin/marketing/live-support-per-category', 'url' => '/admin/marketing/live-support-per-category',
), ),

View File

@@ -3,6 +3,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Bán hàng", "name" => "Bán hàng",
"icon_class" => "iconify lucide--store tw-tsa",
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(
@@ -11,6 +12,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'order/home', 'id' => 'order/home',
'name' => 'Danh sách đơn hàng', 'name' => 'Danh sách đơn hàng',
"icon_class" => '',
'url' => '/admin/order', // &list=new 'url' => '/admin/order', // &list=new
), ),
@@ -20,6 +22,7 @@ return array(
'view' => 'bargain', 'view' => 'bargain',
'id' => 'order/bargain', 'id' => 'order/bargain',
'name' => 'Mặc cả giá', 'name' => 'Mặc cả giá',
"icon_class" => '',
'url' => '/admin/order/bargain', 'url' => '/admin/order/bargain',
), ),
@@ -29,16 +32,17 @@ return array(
'view' => 'wait-order', 'view' => 'wait-order',
'id' => 'order/wait-order', 'id' => 'order/wait-order',
'name' => 'Chờ mua sản phẩm', 'name' => 'Chờ mua sản phẩm',
"icon_class" => '',
'url' => '/admin/order/wait-order', 'url' => '/admin/order/wait-order',
), ),
array( array(
'enable' => true , 'enable' => true ,
'module' => 'order', 'module' => 'order',
'view' => 'paygate', 'view' => 'paygate',
'id' => 'order/paygate', 'id' => 'order/paygate',
'name' => 'Thanh toán qua cổng dịch vụ', 'name' => 'Thanh toán qua cổng dịch vụ',
"icon_class" => '',
'url' => '/admin/order/paygate', 'url' => '/admin/order/paygate',
), ),
@@ -48,6 +52,7 @@ return array(
'view' => 'price-quote', 'view' => 'price-quote',
'id' => 'order/price-quote', 'id' => 'order/price-quote',
'name' => 'Lập báo giá', 'name' => 'Lập báo giá',
"icon_class" => '',
'url' => '/admin/order/price-quote', 'url' => '/admin/order/price-quote',
), ),
), ),

View File

@@ -2,8 +2,8 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Xây dựng máy tính", "name" => "Xây dựng máy tính",
"icon_class" => 'iconify lucide--monitor-smartphone tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(

View File

@@ -5,6 +5,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Sản phẩm", "name" => "Sản phẩm",
"icon_class" => 'iconify lucide--package tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(
@@ -13,6 +14,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'product/home', 'id' => 'product/home',
'name' => 'Sản phẩm', 'name' => 'Sản phẩm',
"icon_class" => '',
'url' => '/admin/product', 'url' => '/admin/product',
), ),
@@ -49,6 +51,7 @@ return array(
'view' => 'category', 'view' => 'category',
'id' => 'product/category', 'id' => 'product/category',
'name' => 'Danh mục', 'name' => 'Danh mục',
"icon_class" => '',
'url' => '/admin/product/category', 'url' => '/admin/product/category',
), ),
array( array(
@@ -57,6 +60,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'brand/home', 'id' => 'brand/home',
'name' => 'Thương hiệu', 'name' => 'Thương hiệu',
"icon_class" => '',
'url' => '/admin/product/brand', 'url' => '/admin/product/brand',
), ),
array( array(
@@ -65,6 +69,7 @@ return array(
'view' => 'attribute', 'view' => 'attribute',
'id' => 'product/attribute', 'id' => 'product/attribute',
'name' => 'Thuộc tính ', 'name' => 'Thuộc tính ',
"icon_class" => '',
'url' => '/admin/product/attribute', 'url' => '/admin/product/attribute',
), ),
array( array(
@@ -73,6 +78,7 @@ return array(
'view' => 'collection', 'view' => 'collection',
'id' => 'product/collection', 'id' => 'product/collection',
'name' => 'Bộ sưu tập', 'name' => 'Bộ sưu tập',
"icon_class" => '',
'url' => '/admin/product/collection', 'url' => '/admin/product/collection',
), ),
@@ -82,6 +88,7 @@ return array(
'view' => 'product-wait-list', 'view' => 'product-wait-list',
'id' => 'product/product-wait-list', 'id' => 'product/product-wait-list',
'name' => 'Chờ mua sản phẩm', 'name' => 'Chờ mua sản phẩm',
"icon_class" => '',
'url' => '/admin/product/product-wait-list', 'url' => '/admin/product/product-wait-list',
), ),
@@ -91,6 +98,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'addon/home', 'id' => 'addon/home',
'name' => 'SP/Dịch vụ mua kèm', 'name' => 'SP/Dịch vụ mua kèm',
"icon_class" => '',
'url' => '/admin/product/addon', 'url' => '/admin/product/addon',
), ),
@@ -100,6 +108,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'config_group/home', 'id' => 'config_group/home',
'name' => 'Nhóm cấu hình', 'name' => 'Nhóm cấu hình',
"icon_class" => '',
'url' => '/admin/product/config_group', 'url' => '/admin/product/config_group',
), ),
@@ -109,6 +118,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'supplier/home', 'id' => 'supplier/home',
'name' => 'Nhà cung cấp', 'name' => 'Nhà cung cấp',
"icon_class" => '',
'url' => '/admin/supplier', 'url' => '/admin/supplier',
),*/ ),*/
@@ -118,6 +128,7 @@ return array(
'view' => 'set-promotion-price', 'view' => 'set-promotion-price',
'id' => 'product/set-promotion-price', 'id' => 'product/set-promotion-price',
'name' => 'Cài đặt giá khuyến mại', 'name' => 'Cài đặt giá khuyến mại',
"icon_class" => '',
'url' => '/admin/product/set-promotion-price', 'url' => '/admin/product/set-promotion-price',
),*/ ),*/
@@ -127,6 +138,7 @@ return array(
'view' => 'product-per-customer-group', 'view' => 'product-per-customer-group',
'id' => 'product/product-per-customer-group', 'id' => 'product/product-per-customer-group',
'name' => 'Giá theo nhóm khách hàng', 'name' => 'Giá theo nhóm khách hàng',
"icon_class" => '',
'url' => '/admin/product/product-per-customer-group', 'url' => '/admin/product/product-per-customer-group',
),*/ ),*/
@@ -136,6 +148,7 @@ return array(
'view' => 'set', 'view' => 'set',
'id' => 'product/set', 'id' => 'product/set',
'name' => 'Set sản phẩm', 'name' => 'Set sản phẩm',
"icon_class" => '',
'url' => '/admin/product/set', 'url' => '/admin/product/set',
), ),
@@ -145,6 +158,7 @@ return array(
'view' => 'spec-group', 'view' => 'spec-group',
'id' => 'product/spec-group', 'id' => 'product/spec-group',
'name' => 'Nhóm thông số kỹ thuật', 'name' => 'Nhóm thông số kỹ thuật',
"icon_class" => '',
'url' => '/admin/product/spec-group', 'url' => '/admin/product/spec-group',
), ),
@@ -154,6 +168,7 @@ return array(
'view' => 'list-competitor', 'view' => 'list-competitor',
'id' => 'product/list-competitor', 'id' => 'product/list-competitor',
'name' => 'So sánh giá đối thủ', 'name' => 'So sánh giá đối thủ',
"icon_class" => '',
'url' => '/admin/product/list-competitor', 'url' => '/admin/product/list-competitor',
), ),
), ),

View File

@@ -4,6 +4,7 @@ return array(
'enable' => true , 'enable' => true ,
"name" => "Thống kê", "name" => "Thống kê",
"icon_class" => 'iconify lucide--pie-chart tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(
@@ -12,6 +13,7 @@ return array(
'view' => 'visitor', 'view' => 'visitor',
'id' => 'report/visitor', 'id' => 'report/visitor',
'name' => 'Thống kê truy cập', 'name' => 'Thống kê truy cập',
"icon_class" => '',
'url' => '/admin/report/visitor', 'url' => '/admin/report/visitor',
), ),
@@ -21,6 +23,7 @@ return array(
'view' => 'customer', 'view' => 'customer',
'id' => 'report/customer', 'id' => 'report/customer',
'name' => 'Thống kê khách hàng', 'name' => 'Thống kê khách hàng',
"icon_class" => '',
'url' => '/admin/report/customer', 'url' => '/admin/report/customer',
), ),
@@ -30,6 +33,7 @@ return array(
'view' => 'order', 'view' => 'order',
'id' => 'report/order', 'id' => 'report/order',
'name' => 'Thống kê đơn hàng', 'name' => 'Thống kê đơn hàng',
"icon_class" => '',
'url' => '/admin/report/order', 'url' => '/admin/report/order',
), ),
@@ -39,6 +43,7 @@ return array(
'view' => 'product-buy', 'view' => 'product-buy',
'id' => 'report/product-buy', 'id' => 'report/product-buy',
'name' => 'Sản phẩm mua nhiều', 'name' => 'Sản phẩm mua nhiều',
"icon_class" => '',
'url' => '/admin/report/product-buy', 'url' => '/admin/report/product-buy',
), ),
@@ -48,6 +53,7 @@ return array(
'view' => 'product-visit', 'view' => 'product-visit',
'id' => 'report/product-visit', 'id' => 'report/product-visit',
'name' => 'Sản phẩm xem nhiều', 'name' => 'Sản phẩm xem nhiều',
"icon_class" => '',
'url' => '/admin/report/product-visit', 'url' => '/admin/report/product-visit',
), ),
@@ -57,6 +63,7 @@ return array(
'view' => 'referer', 'view' => 'referer',
'id' => 'report/referer', 'id' => 'report/referer',
'name' => 'Web giới thiệu', 'name' => 'Web giới thiệu',
"icon_class" => '',
'url' => '/admin/report/referer', 'url' => '/admin/report/referer',
), ),
@@ -66,6 +73,7 @@ return array(
'view' => 'search', 'view' => 'search',
'id' => 'report/search', 'id' => 'report/search',
'name' => 'Từ khóa tìm kiếm', 'name' => 'Từ khóa tìm kiếm',
"icon_class" => '',
'url' => '/admin/report/search', 'url' => '/admin/report/search',
), ),
@@ -75,6 +83,7 @@ return array(
'view' => 'error-page', 'view' => 'error-page',
'id' => '', 'id' => '',
'name' => 'Lỗi website', 'name' => 'Lỗi website',
"icon_class" => '',
'url' => '/admin/report/error-page', 'url' => '/admin/report/error-page',
), ),
), ),

View File

@@ -3,6 +3,7 @@
return array( return array(
'enable' => true , 'enable' => true ,
"name" => "Hệ thống", "name" => "Hệ thống",
"icon_class" => 'iconify hugeicons--settings-04 tw-tsa',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
array( array(
@@ -11,6 +12,7 @@ return array(
'view' => 'settings', 'view' => 'settings',
'id' => 'system/settings', 'id' => 'system/settings',
'name' => 'Cài đặt chung', 'name' => 'Cài đặt chung',
"icon_class" => '',
'url' => '/admin/system/settings', 'url' => '/admin/system/settings',
), ),
@@ -20,6 +22,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'template/home', 'id' => 'template/home',
'name' => 'Sửa file template', 'name' => 'Sửa file template',
"icon_class" => '',
'url' => '/admin/template', 'url' => '/admin/template',
), ),
@@ -29,6 +32,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => '', 'id' => '',
'name' => 'Quản trị viên', 'name' => 'Quản trị viên',
"icon_class" => '',
'url' => '/admin/admin', 'url' => '/admin/admin',
), ),
@@ -38,6 +42,7 @@ return array(
'view' => 'store-address', 'view' => 'store-address',
'id' => '', 'id' => '',
'name' => 'Địa chỉ cửa hàng', 'name' => 'Địa chỉ cửa hàng',
"icon_class" => '',
'url' => '/admin/system/store-address', 'url' => '/admin/system/store-address',
), ),
@@ -47,6 +52,7 @@ return array(
'view' => 'domain', 'view' => 'domain',
'id' => 'system/domain', 'id' => 'system/domain',
'name' => 'Cài đặt tên miền', 'name' => 'Cài đặt tên miền',
"icon_class" => '',
'url' => '/admin/system/domain', 'url' => '/admin/system/domain',
), ),
@@ -56,6 +62,7 @@ return array(
'view' => 'ban-ip', 'view' => 'ban-ip',
'id' => '', 'id' => '',
'name' => 'Chặn IP truy cập website', 'name' => 'Chặn IP truy cập website',
"icon_class" => '',
'url' => '/admin/system/ban-ip', 'url' => '/admin/system/ban-ip',
), ),
@@ -65,6 +72,7 @@ return array(
'view' => 'change-info', 'view' => 'change-info',
'id' => '', 'id' => '',
'name' => 'Thông tin website', 'name' => 'Thông tin website',
"icon_class" => '',
'url' => '/admin/system/change-info', 'url' => '/admin/system/change-info',
), ),
@@ -76,6 +84,7 @@ return array(
'view' => 'province-list', 'view' => 'province-list',
'id' => '', 'id' => '',
'name' => 'Cài đặt tỉnh thành', 'name' => 'Cài đặt tỉnh thành',
"icon_class" => '',
'url' => '/admin/system/province-list', 'url' => '/admin/system/province-list',
), ),
@@ -85,6 +94,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => '', 'id' => '',
'name' => 'Tình trạng đơn hàng', 'name' => 'Tình trạng đơn hàng',
"icon_class" => '',
'url' => '/admin/system/order-status', 'url' => '/admin/system/order-status',
), ),
@@ -94,6 +104,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => '', 'id' => '',
'name' => 'Hỗ trợ bán hàng', 'name' => 'Hỗ trợ bán hàng',
"icon_class" => '',
'url' => '/admin/online_support', 'url' => '/admin/online_support',
), ),
@@ -103,6 +114,7 @@ return array(
'view' => 'country', 'view' => 'country',
'id' => '', 'id' => '',
'name' => 'Quốc gia', 'name' => 'Quốc gia',
"icon_class" => '',
'url' => '/admin/system/country', 'url' => '/admin/system/country',
), ),
@@ -112,6 +124,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => '', 'id' => '',
'name' => 'Cài đặt thông báo ngoài', 'name' => 'Cài đặt thông báo ngoài',
"icon_class" => '',
'url' => '/admin/report_out', 'url' => '/admin/report_out',
), ),
@@ -121,6 +134,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => '', 'id' => '',
'name' => 'Cài đặt phí vận chuyển', 'name' => 'Cài đặt phí vận chuyển',
"icon_class" => '',
'url' => '/admin/shipping2', 'url' => '/admin/shipping2',
), ),
@@ -130,6 +144,7 @@ return array(
'view' => 'redirect', 'view' => 'redirect',
'id' => 'url/redirect', 'id' => 'url/redirect',
'name' => 'Url Redirect', 'name' => 'Url Redirect',
"icon_class" => '',
'url' => '/admin/url/redirect', 'url' => '/admin/url/redirect',
), ),
@@ -139,17 +154,10 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'tool/home', 'id' => 'tool/home',
'name' => 'Công cụ', 'name' => 'Công cụ',
"icon_class" => '',
'url' => '/admin/tool', 'url' => '/admin/tool',
), ),
array(
'enable' => true ,
'module' => 'civi',
'view' => 'home',
'id' => '',
'name' => 'Civi Affiliate',
'url' => '/admin/civi',
),
array( array(
'enable' => true , 'enable' => true ,
@@ -157,6 +165,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'menu/home', 'id' => 'menu/home',
'name' => 'Quản trị menu', 'name' => 'Quản trị menu',
"icon_class" => '',
'url' => '/admin/menu', 'url' => '/admin/menu',
), ),
@@ -166,6 +175,7 @@ return array(
'view' => 'keyword-suggest', 'view' => 'keyword-suggest',
'id' => 'system/keyword-suggest', 'id' => 'system/keyword-suggest',
'name' => 'Từ khóa gợi ý', 'name' => 'Từ khóa gợi ý',
"icon_class" => '',
'url' => '/admin/system/keyword-suggest', 'url' => '/admin/system/keyword-suggest',
), ),
@@ -175,6 +185,7 @@ return array(
'view' => 'home', 'view' => 'home',
'id' => 'tag/home', 'id' => 'tag/home',
'name' => 'Quản trị Tag', 'name' => 'Quản trị Tag',
"icon_class" => '',
'url' => '/admin/tag', 'url' => '/admin/tag',
), ),
), ),

View File

@@ -4,6 +4,7 @@ return array(
'enable' => true , 'enable' => true ,
"name" => "Bảo hành sản phẩm", "name" => "Bảo hành sản phẩm",
"icon_class" => '',
"url" => "", "url" => "",
"menu" => array( "menu" => array(
/*0 => array( /*0 => array(

View File

@@ -1,8 +1,8 @@
{ {
"require": { "require": {
"liquid/liquid": "1.4.32",
"ext-json": "*", "ext-json": "*",
"ext-mysqli": "*", "ext-mysqli": "*",
"ext-zip": "*" "ext-zip": "*",
"liquid/liquid": "^1.4"
} }
} }

View File

@@ -467,46 +467,29 @@
</div> </div>
<div class="flex items-center justify-between px-3 gap-3 relative"> <div class="flex items-center justify-between px-3 gap-3 relative">
<ul class="menu menu-horizontal"> <ul class="menu menu-horizontal">
{% for _category in global.main_menu %} <li>
{% assign _type = _category[0] %} <div class="flex items-center gap-3">
{% assign _menuArray = _category[1].menu %} <span class=""></span>
{% if _category[1].enable == 1 %} <a href="/"><span class="grow">Home</span></a>
</div>
</li>
{% for _menu_item in global.main_menu %}
{% assign _menu_children = _menu_item.menu %}
<li <li
class="{%- for _item in _menuArray -%}{%- if _item.url == global.url -%} active {%- endif -%} {%- endfor -%}"> class="{%- for _item in _menuArray -%}{%- if _item.url == global.url -%} active {%- endif -%} {%- endfor -%}">
<div class="flex items-center gap-3"> <div class="flex items-center gap-3">
{% if _type == 'order' %} {% if _menu_item.icon_class != '' %}
<span class="iconify lucide--store tw-tsa"></span> <span class="{{_menu_item.icon_class}}"></span>
{% elsif _type == 'product' %}
<span class="iconify lucide--package tw-tsa"></span>
{% elsif _type == 'customer' %}
<span class="iconify lucide--users tw-tsa"></span>
{% elsif _type == 'article' %}
<span class="iconify lucide--newspaper tw-tsa"></span>
{% elsif _type == 'marketing' %}
<span class="iconify lucide--megaphone tw-tsa"></span>
{% elsif _type == 'job' %}
<span class="iconify lucide--briefcase tw-tsa"></span>
{% elsif _type == 'pcbuilder' %}
<span class="iconify lucide--monitor-smartphone tw-tsa"></span>
{% elsif _type == 'payinstall' %}
<span class="iconify lucide--handshake tw-tsa"></span>
{% elsif _type == 'distributor' %}
<span class="iconify lucide--store tw-tsa"></span>
{% elsif _type == 'report' %}
<span class="iconify lucide--pie-chart tw-tsa"></span>
{% elsif _type == 'system' %}
<span class="iconify hugeicons--settings-04 tw-tsa"></span>
{% endif %} {% endif %}
<span class="grow">{{ _category[1].name }}</span> <span class="grow">{{ _menu_item.name }}</span>
</div> </div>
<ul class="p-2 submenu"> <ul class="p-2 submenu">
{% for _item in _menuArray %} {% for _item in _menu_children %}
<li class="{% if _item.url == global.url %} active {% endif %}"><a href="{{ _item.url }}" <li class="{% if _item.url == global.url %} active {% endif %}"><a href="{{ _item.url }}"
style="white-space: nowrap">{{ _item.name }}</a></li> style="white-space: nowrap">{{ _item.name }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</li> </li>
{% endif %}
{% endfor %} {% endfor %}
</ul> </ul>

View File

@@ -36,6 +36,12 @@
<div id="layout-content"> <div id="layout-content">
{{ page_content }} {{ page_content }}
</div> </div>
<footer class="footer sm:footer-horizontal footer-center bg-base-300 text-base-content p-4">
<aside>
<p>Copyright © 2025 - HuraSoft</p>
</aside>
</footer>
</div> </div>
</div> </div>
@@ -43,6 +49,7 @@
{% include javascript/index %} {% include javascript/index %}