Compare commits

...

179 Commits

Author SHA1 Message Date
b4b7a452fc update 2025-12-15 14:07:09 +07:00
e703314c7f update 2025-12-13 12:07:01 +07:00
d51528e407 update 2025-12-13 10:28:56 +07:00
6f7a292259 update 2025-12-12 16:29:06 +07:00
04f6e919f0 update 2025-12-12 11:01:29 +07:00
123853df5c update 2025-12-11 14:31:35 +07:00
d2b916b985 update 2025-12-11 14:30:30 +07:00
c51cf9dc87 update 2025-12-11 14:26:34 +07:00
01a0a60ef6 update 2025-12-11 13:32:02 +07:00
70ca13999e update 2025-12-11 13:30:40 +07:00
ebfaf799eb update 2025-12-11 09:44:30 +07:00
7df4c3405f update 2025-12-10 19:20:39 +07:00
1afcb2364e update 2025-12-10 08:37:47 +07:00
699db96d26 update 2025-12-09 11:13:40 +07:00
9363b3bb4f update 2025-12-08 20:49:12 +07:00
043b3ac069 update 2025-12-08 14:36:52 +07:00
0068d20a12 update 2025-12-08 14:35:28 +07:00
ac2717b077 update 2025-12-08 13:57:40 +07:00
603d024af3 update 2025-12-08 09:47:31 +07:00
1dbf988073 up 2025-12-07 16:00:19 +07:00
60823b0aab up 2025-12-07 15:59:45 +07:00
942aeafb60 update 2025-12-07 15:58:07 +07:00
75a641ab40 update 2025-12-04 17:20:42 +07:00
3f57e61be2 update 2025-12-04 14:34:23 +07:00
546d4b6f95 update 2025-12-04 14:13:37 +07:00
d0ee976b0c update 2025-12-04 13:47:17 +07:00
e6c4947c75 update 2025-12-02 17:01:37 +07:00
6233a30284 upload 2025-12-02 09:30:52 +07:00
2ad52e7ce8 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2025-11-30 19:57:43 +07:00
587cdd5420 up 2025-11-30 19:57:12 +07:00
a289d69a6b update 2025-11-30 11:43:47 +07:00
91941d7c14 update 2025-11-28 16:27:10 +07:00
af6f1eff2e update 2025-11-28 09:32:05 +07:00
8c42d57fcd update 2025-11-27 12:55:33 +07:00
6876ab2bd3 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2025-11-24 13:08:40 +07:00
4a4c3177a9 a 2025-11-24 13:08:28 +07:00
b6d1297a20 Update menu 2025-11-24 12:46:42 +07:00
4a6b814426 Update menu 2025-11-24 12:39:28 +07:00
4d67725ea8 Update menu 2025-11-24 12:37:49 +07:00
caa5828511 Update liquid 1.4.44 2025-11-24 10:56:06 +07:00
1dda5db73b push 2025-11-21 19:06:27 +07:00
971a23ae2a up 2025-11-21 16:34:19 +07:00
060e3643ea update 2025-11-20 13:10:28 +07:00
1c2c38a8bb push 11/4 2025-04-11 14:18:51 +07:00
e8e9f7c382 update 04/04 2025-04-04 15:05:18 +07:00
5529e9ff1f upload 1/4 2025-04-01 13:46:03 +07:00
30ebfb6644 upload 31/03 2025-03-31 11:07:34 +07:00
3137a8226b update 29/03 2025-03-29 11:46:53 +07:00
a399a7bedd upload 28/03 2025-03-28 14:38:02 +07:00
fe6ba5b1a0 up 2025-02-24 10:16:18 +07:00
d20a20684d update menu, hover 2025-02-24 10:09:33 +07:00
dd8de9838f menu 2025-02-21 15:17:06 +07:00
1b461f0e86 new menu 2025-02-21 14:24:40 +07:00
ef51a9d6f4 menu 21/02 2025-02-21 14:04:33 +07:00
34275ed7b7 update menu 2025-02-21 13:36:38 +07:00
0c8e3258c4 up 2025-02-20 16:27:50 +07:00
3a257c411e up 2025-02-19 14:55:19 +07:00
7857cc0422 up 2025-02-19 10:28:11 +07:00
dbeda7da6d up 2025-02-18 16:30:26 +07:00
66344ad5c6 up 2025-02-17 16:51:08 +07:00
ae9d94330f up 2025-02-17 09:24:52 +07:00
84731fc375 up 2025-02-14 16:17:58 +07:00
e60866c99f up 2025-02-13 15:45:32 +07:00
1315df5ebb up 2025-02-12 16:13:51 +07:00
c3c4efd679 up 2025-02-11 16:22:18 +07:00
961e92b965 up 2025-02-10 16:51:19 +07:00
cc0f195bee up 2025-02-09 19:40:45 +07:00
9bdd0e435a up 2025-02-08 22:55:01 +07:00
7299751c83 up 2025-02-08 19:28:39 +07:00
e41fa9b5b1 menu 2025-02-08 19:27:15 +07:00
dccf38d6d3 menu 2024-05-16 11:38:34 +07:00
48c9cba704 ts 2024-05-15 09:03:46 +07:00
6ee294d14b ts 2024-05-15 08:42:10 +07:00
4e9930841c menu 2024-05-13 13:30:57 +07:00
fb29ea215a typescript 2024-05-13 11:55:28 +07:00
eee07fab6b typesript 2024-05-13 11:52:43 +07:00
f567aed4da ts 2024-05-13 11:25:12 +07:00
90e1a88461 js 2024-05-11 10:11:24 +07:00
cea5665f51 global.js 2024-05-10 23:25:07 +07:00
f0628c310c global.js 2024-05-09 11:16:07 +07:00
9737f4ed81 js 2024-05-09 11:13:48 +07:00
f66da1b416 js 2024-05-09 10:29:45 +07:00
ce9710c758 menu 2024-05-08 09:15:55 +07:00
fe7ddf826e loading 2024-05-07 15:42:55 +07:00
6415cca99f update menu 2024-05-07 13:34:07 +07:00
7b96c6d976 checkbox 2024-05-07 11:33:48 +07:00
615e36647a select datepicker 2024-05-07 10:04:17 +07:00
d71cbe3065 update form product 2024-05-06 15:55:58 +07:00
d9094447c8 update 2024-05-04 09:39:10 +07:00
edee2ad3d8 update list product 2024-05-04 09:29:34 +07:00
da868053ca c 2024-05-02 09:50:06 +07:00
d33bec681f update system 2024-03-18 12:03:24 +07:00
5cf4155fcc upload 2024-03-09 11:58:48 +07:00
10b1b7da6e marketting 2024-03-09 11:54:26 +07:00
8679b320e1 payinstall 2024-03-09 11:35:04 +07:00
14ef2c1610 06/03/2024 9h21 2024-03-06 09:21:29 +07:00
91d317607a 06/03/2024 9h19 2024-03-06 09:19:26 +07:00
d5bd7d2948 update customer 2024-03-05 14:55:28 +07:00
21d3b53747 update product 2024-03-04 13:26:05 +07:00
78d3c1e64f update 2024-02-29 15:22:40 +07:00
f8088b3a71 update product brand 2024-02-29 15:20:41 +07:00
6f393f6e64 update product 2024-02-29 14:49:03 +07:00
6166366250 category 2024-02-27 13:35:20 +07:00
4773342421 category 2024-02-27 13:33:08 +07:00
1a5515ed95 category 2024-02-27 13:31:27 +07:00
22ceb73fb1 a 2024-02-23 09:18:06 +07:00
eafb7bfb5f oder 2024-02-21 14:14:01 +07:00
15f5520474 marketing 2024-02-21 09:56:03 +07:00
546ac5d1e2 marketing 2024-02-21 09:54:46 +07:00
200a04e66a marketing 2024-02-21 09:53:08 +07:00
a7bdbd38fe marketing 2024-02-17 10:17:47 +07:00
672bd0067e s 2024-02-12 10:29:15 +07:00
92331cc02b Merge remote-tracking branch 'origin/master'
# Conflicts:
#	assets/script/pc_style.css.map
2024-02-07 13:40:06 +07:00
cf98ec94a0 update marketing 2/6/2024 2024-02-06 13:13:29 +07:00
5dcb6686c2 c 2024-02-06 11:46:59 +07:00
7feffb1783 update customer 2024-02-05 11:42:19 +07:00
6f9cfba530 update customer 2024-02-05 11:30:07 +07:00
2c6a60a2d7 update marketing 2024-02-01 14:43:24 +07:00
70d0602388 m 2024-02-01 11:10:26 +07:00
dde52d00d6 update marketing page 2024-01-31 16:04:16 +07:00
7a11011330 update marketing page 2024-01-31 16:02:26 +07:00
2b9695b9f2 search 2024-01-31 12:05:22 +07:00
37e4278d53 search 2024-01-31 11:59:25 +07:00
4561bd68d1 c 2024-01-31 11:36:25 +07:00
caef156a05 marketing/coupon 2024-01-31 10:38:38 +07:00
88e4ec4a28 update 31/01 2024-01-31 09:34:00 +07:00
6dd13c49ff update icon,fixed menu, modal category, modal brand 2024-01-30 15:53:37 +07:00
c17cf4ae8b a 2024-01-30 15:28:16 +07:00
36c52953bd marketing 2024-01-30 09:45:34 +07:00
d4077674f7 fix icon 2024-01-30 09:35:11 +07:00
9462e968d3 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2024-01-30 09:22:32 +07:00
222fd7f727 a 2024-01-30 09:22:28 +07:00
32933ad2b9 asd 2024-01-30 08:45:44 +07:00
a863974dff s 2024-01-29 21:22:26 +07:00
2e4cf30a14 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2024-01-29 15:23:48 +07:00
10a9439f28 product list 2024-01-29 15:22:43 +07:00
ac7145c8c1 product list 2024-01-29 15:22:13 +07:00
d659a777f4 c 2024-01-29 11:56:08 +07:00
507ea95304 c 2024-01-29 11:46:07 +07:00
ba4ca85fd1 c 2024-01-29 10:58:52 +07:00
3cb59f127c a 2024-01-29 10:46:02 +07:00
dc39d63d51 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2024-01-29 10:44:54 +07:00
ff274416dd 29-01-2024 2024-01-29 10:44:49 +07:00
72170f373a c 2024-01-29 10:39:53 +07:00
3d471965d4 a 2024-01-29 08:54:51 +07:00
545c404fdf c 2024-01-28 12:36:48 +07:00
9b6cd189ea c 2024-01-28 11:27:52 +07:00
736f5b9c4e c 2024-01-28 11:11:14 +07:00
ad0f82e717 c 2024-01-28 11:10:47 +07:00
4fa4c3996f c 2024-01-28 11:08:45 +07:00
9052a3b7dd c 2024-01-28 10:53:31 +07:00
7217f8b92f update 2024-01-27 11:19:25 +07:00
31aaee0dcd Order page 2024-01-27 10:52:05 +07:00
c6ab0f714e Order page 2024-01-27 10:50:38 +07:00
382acf8277 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2024-01-27 10:48:34 +07:00
0c56e49551 h 2024-01-27 10:48:30 +07:00
00c2de9e5c Ban hang 2024-01-27 10:41:35 +07:00
d2188f2742 update 15:15 2024-01-26 15:17:05 +07:00
6d8b69c2b7 update order page 12:00 2024-01-26 11:59:06 +07:00
218549a354 update order page 2024-01-26 11:51:46 +07:00
5f080f0be6 a 2024-01-26 10:41:49 +07:00
b5a10581a0 update product-detail 2024-01-25 17:37:49 +07:00
77e7773cc6 comboset 2024-01-24 17:08:08 +07:00
401157b54e update menu 2024-01-24 17:01:14 +07:00
9f670e9ab0 update menu 2024-01-24 11:49:22 +07:00
16d4c7cc31 update menu 2024-01-24 11:26:10 +07:00
0c85c7a6f1 update menu 2024-01-24 10:08:36 +07:00
d1b5fcebb3 update menu 2024-01-24 10:07:21 +07:00
e37930d631 update menu 2024-01-23 11:48:06 +07:00
61a9720a89 update icon homepage 2024-01-23 10:41:42 +07:00
6dc3b5d19f update icon homepage 2024-01-23 10:40:23 +07:00
353ee07560 update menu 2024-01-20 10:47:38 +07:00
e10bec9289 20/1/2024 2024-01-20 09:36:14 +07:00
a35ca0cd16 20/1/2024 2024-01-20 09:29:38 +07:00
9f913a3871 20/01/2024 2024-01-20 09:23:31 +07:00
2e97b21bda s 2024-01-19 20:24:39 +07:00
35eb4948d8 s 2024-01-19 20:22:45 +07:00
b7ca602739 s 2024-01-19 20:19:35 +07:00
9d04c298a8 s 2024-01-19 20:14:21 +07:00
877 changed files with 103727 additions and 4070 deletions

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
package/vendor
package/composer.lock
.idea
node_modules/

7
.htaccess Normal file
View File

@@ -0,0 +1,7 @@
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
# prevent rewrite non-existent files
RewriteCond %{REQUEST_URI} !\.(jpg|png|gif|css|js|php|tiff|jpeg|ico)$
RewriteRule ^(.*)$ /index.php [QSA,L]

View File

@@ -2,16 +2,23 @@
<p>Link thiết kế: <a href="https://www.figma.com/file/5Km584w3tlnwxOltV5KAjh/281123_HURA8?node-id=328%3A1204&mode=dev" target="_blank"> <strong>Giao diện Admin</strong> </a></p>
<p>Repo: <a href="https://repo.hurasoft.com/tieptk/admin_hura_8" target="_blank">https://repo.hurasoft.com/tieptk/admin_hura_8</a></p>
<p>Theo dõi tiến độ: <a href="https://docs.google.com/spreadsheets/d/1Po3ANsG00pm_Y3dnrwuV81cidTCCqepYmR3yPDlIq6c/edit#gid=0" target="_blank">https://docs.google.com/spreadsheets/d/1Po3ANsG00pm_Y3dnrwuV81cidTCCqepYmR3yPDlIq6c/edit#gid=0</a></p>
<h2>Cài đặt hệ thống</h2>
<p>Test và làm việc chính tại web: <a href="http://local.hura8_admin/"> http://local.hura8_admin/</a> </p>
<ul>
<li>Tải phần mềm XAMPP tại https://www.apachefriends.org/download.html để chạy PHP</li>
<li>Chỉnh file hosts trong máy tính: 127.0.0.1 local.hura8_admin</li>
<li>Cài đặt httpd-vhosts.conf của XAMPP</li>
</ul>
<li>Tải phần mềm XAMPP tại <a href="https://www.apachefriends.org/download.html" target="_blank">https://www.apachefriends.org/download.html</a> để chạy PHP</li>
<li>Chỉnh file hosts trong máy tính C:\Windows\System32\drivers\etc\hosts:
<pre><code>
127.0.0.1 local.hura8_admin
</code></pre>
</li>
<li>
Cài đặt ../xampp/apache/conf/extra/httpd-vhosts.conf của apache trong XAMPP
<pre><code>
&lt;VirtualHost *:80&gt;
DocumentRoot "/thuc-muc-check-out/admin_hura_8"
@@ -21,6 +28,19 @@
&lt;/Directory&gt;
&lt;/VirtualHost&gt;
</code></pre>
</li>
<li>
Cài đặt ../xampp/apache/conf/httpd.conf của apache trong XAMPP
<pre><code>
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
AllowOverride All
</code></pre>
</li>
</ul>
<h2>Cấu trúc thư mục</h2>

View File

@@ -1,8 +1,17 @@
<?php
define("ROOT_DIR", __DIR__ );
const ROOT_DIR = __DIR__;
const CONFIG_DIR = ROOT_DIR . '/inc/config';
include __DIR__."/inc/common.php";
const IMAGE_FILE_SEPARATOR = "-";
define("CURRENT_TIME", time());
const STATIC_DOMAIN = "http://hura8.hurasoft.com";
const ENABLE_DB_DEBUG = true;
const LANGUAGE = 'vi';
const IS_DEFAULT_LANGUAGE = true;
include ROOT_DIR."/inc/common.php";
include ROOT_DIR."/inc/fun.db.php";
// start autoload
init_autoload();

BIN
assets/images/avatars/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/avatars/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
assets/images/avatars/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/avatars/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
assets/images/avatars/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
assets/images/avatars/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
assets/images/avatars/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
assets/images/avatars/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
assets/images/avatars/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/brand-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 26 KiB

BIN
assets/images/icons/26.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
assets/images/icons/27.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

BIN
assets/images/icons/28.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

BIN
assets/images/icons/29.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

BIN
assets/images/icons/30.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 B

BIN
assets/images/icons/31.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

BIN
assets/images/icons/32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

7308
assets/script/hura-lib.css Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,252 @@
/* ===========================
FONT IMPORT (Dùng chung)
=========================== */
@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@100;200;300;400;500;600;700;800;900;1000&display=swap";
@import "https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:wght@400;500;600;700;800;1000&display=swap";
@import "https://fonts.googleapis.com/css2?family=Inclusive+Sans:wght@400;500;600;700;800;900;1000&display=swap";
@import "https://fonts.googleapis.com/css2?family=AR+One+Sans:wght@400;500;600;700;800;1000&display=swap";
@layer properties {
:root {
--font-sans: "Inclusive Sans", sans-serif;
--text-base: 16px;
--bg-body: #fafbfd;
--color-hura: #0041e8;
--color-header: #002bb5;
--text-base--line-height: 1.5;
--color-black: #000;
--color-white: #fff;
--spacing: 0.25rem;
--layout-topbar-background: #fff;
--menu-active: #e9f2ff;
--menu-text: #177bff;
--menu-sub-bg: #fff;
}
}
@layer base {
html,
body {
font-family: var(--font-sans);
font-size: var(--text-base);
line-height: var(--text-base--line-height);
}
*,
*::before,
*::after {
box-sizing: border-box;
}
}
@layer components {
#layout-topbar {
background: var(--layout-topbar-background);
top: calc(var(--spacing) * 0);
z-index: 10;
transition-property: top, margin, border-radius;
transition-timing-function: var(
--tw-ease,
var(--default-transition-timing-function)
);
transition-duration: var(--tw-duration, var(--default-transition-duration));
--tw-duration: 0.3s;
transition-duration: 0.3s;
position: sticky;
border-bottom-style: solid;
border-bottom-width: 1px;
border-color: var(--color-base-300);
}
#layout-content {
padding: calc(var(--spacing) * 6);
transition-property: all;
transition-timing-function: var(
--tw-ease,
var(--default-transition-timing-function)
);
transition-duration: var(--tw-duration, var(--default-transition-duration));
flex-grow: 1;
background: var(--bg-body);
}
.bg-menu {
background-color: var(--color-header);
}
/* menu */
.menu {
& {
--menu-active-bg: #e9f2ff;
}
}
.menu-horizontal {
display: inline-flex;
flex-direction: row;
}
.menu-horizontal li {
position: relative;
}
/* ACTIVE STATE (LEVEL 1) */
.menu-horizontal li.active {
background: var(--menu-active);
}
.menu-horizontal li.active .grow,
.menu-horizontal li.active svg {
color: var(--menu-text);
}
/* ACTIVE STATE (LEVEL 2) */
.menu-horizontal li.active ul li.active {
background: var(--color-hura);
}
.menu-horizontal li.active ul li.active a {
color: #fff;
}
/* HOVER LEVEL 1 */
.menu-horizontal li:hover {
background: var(--menu-active);
}
.menu-horizontal li:hover .grow,
.menu-horizontal li:hover svg {
color: var(--color-hura);
}
/* Dải hover giữ submenu không bị mất */
.menu-horizontal li::before {
content: "";
position: absolute;
left: 0;
bottom: -18px;
width: 100%;
height: 30px;
display: none;
}
.menu-horizontal li:hover::before {
display: block;
}
/* ==========================
SUBMENU (UL)
========================== */
.menu-horizontal li .submenu {
position: absolute !important;
top: 125%;
left: 0;
background: var(--menu-sub-bg);
margin-left: 0 !important;
padding: 0.5rem;
z-index: 999;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
max-height: 500px;
overflow-y: auto;
overflow-x: hidden;
display: none;
margin-top: 0 !important;
}
/* DaisyUI details submenu spacing */
.menu-horizontal > li:not(.menu-title) > details > ul {
margin-top: 1rem;
padding-inline-end: 0.5rem;
}
/* SHOW SUBMENU ON HOVER */
.menu-horizontal li:hover .submenu,
.menu-horizontal li:hover > details > ul {
display: block;
}
/* Remove extra before from DaisyUI */
.menu-horizontal > li > details > ul:before {
content: none;
}
/* ==========================
SUBMENU HOVER ITEMS
========================== */
.menu-horizontal li ul li:hover {
background: var(--color-hura);
}
.menu-horizontal li ul li:hover a {
color: #fff;
}
.menu-horizontal li ul li:hover::before {
display: none;
}
/* Font weight chung */
.menu-horizontal .grow {
font-weight: 500;
}
.menu-icon-color {
color: #838383;
}
.card-body {
padding: calc(var(--spacing) * 4);
}
.choices {
margin-top: calc(var(--spacing) * 2);
--tw-shadow:
0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)),
0 1px 2px -1px var(--tw-shadow-color, #0000001a);
box-shadow:
var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-radius: var(--radius-sm);
}
.choices__inner {
background: #fff !important;
min-height: 38px !important;
padding: 5px !important;
}
}
@layer hura {
.hura-btn-active {
--btn-bg: var(--color-hura);
--btn-fg: #ffffff;
--btn-border: var(--color-hura);
color: var(--color-white);
}
.hura-btn-active:hover {
--btn-bg: #002bb5;
--btn-border: #002bb5;
}
.hura-btn-outline {
background: #f5f7ff;
color: var(--color-hura);
border: 1px solid var(--color-hura);
}
.hura-btn-outline:hover {
background: var(--color-hura);
color: #fff;
}
.hura-checkbox:checked,
.hura-checkbox[aria-checked="true"] {
background: var(--color-hura);
color: #fff;
}
.hura-radio:checked,
.hura-radio[aria-checked="true"] {
border-color: var(--color-hura);
}
.hura-radio:checked::before,
.hura-radio[aria-checked="true"]::before {
background-color: var(--color-hura);
}
.hura-text-blue {
color: var(--color-hura);
}
.hura-bg-blue {
background: var(--color-hura);
}
.hura-shadow-blue {
box-shadow:
0 10px 15px -3px rgb(var(--color-hura) / 0.35),
0 4px 6px -4px rgb(var(--color-hura) / 0.25);
}
}

2
assets/script/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,584 +0,0 @@
*,
::after,
::before {
box-sizing: border-box;
}
button,
input,
select {
outline: none !important;
color: #000;
border-radius: 0;
}
button,
input {
overflow: visible;
}
button,
input,
optgroup,
select,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
border-radius: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type=number] {
-moz-appearance: textfield;
}
body {
color: #000;
font-family: "Inter", sans-serif;
background: #fafafb;
position: relative;
font-size: 14px;
word-break: break-word;
counter-reset: section;
font-weight: 400;
line-height: 1.5;
margin: auto;
}
img {
max-width: 100%;
height: auto;
}
a {
text-decoration: none;
}
::-webkit-scrollbar-track {
background: #f5f5f5;
}
::-webkit-scrollbar-thumb {
background: grey;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: #ccc;
}
::-webkit-scrollbar {
width: 8px;
height: 10px;
}
.clearfix::after {
content: "";
clear: both;
display: block;
}
.inherit {
font-size: inherit;
font-weight: inherit;
line-height: inherit;
margin: 0;
}
.line-clamp-2 {
text-overflow: ellipsis;
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
text-overflow: ellipsis;
-webkit-line-clamp: 3;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-4 {
text-overflow: ellipsis;
-webkit-line-clamp: 4;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-5 {
text-overflow: ellipsis;
-webkit-line-clamp: 5;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.icons {
background: url(../images/global-sprite.png) no-repeat;
background-size: 400px 400px;
}
.admin-global-container {
max-width: 1720px;
margin: auto;
display: flex;
}
.admin-menu-container {
position: relative;
overflow: auto;
background: #004e99;
color: #fff;
width: 16%;
padding: 20px 0;
line-height: 20px;
}
.admin-menu-container a {
color: #fff;
}
.admin-menu-container .menu-logo {
display: table;
margin-bottom: 50px;
margin-left: 16px;
}
.admin-menu-container .menu-logo img {
height: 22px;
}
.admin-menu-container .menu-list {
margin: 50px 0;
}
.admin-menu-container details[open] svg {
transform: rotate(90deg);
}
.admin-menu-container details[open] summary {
background: #81b5e4;
}
.admin-menu-container details[open] summary a {
font-weight: 700;
}
.admin-menu-container details[open] .icons {
filter: brightness(100);
}
.admin-menu-container summary {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
padding-right: 16px;
border-radius: 4px;
position: relative;
transition: 0.3s all;
}
.admin-menu-container summary a {
padding: 8px 16px;
display: flex;
align-items: center;
}
.admin-menu-container svg {
position: absolute;
right: 16px;
transition: 0.3s all;
}
.admin-menu-container .item {
display: flex;
align-items: center;
padding: 0 16px;
line-height: 36px;
transition: 0.3s all;
border-radius: 4px;
}
.admin-menu-container .item:hover {
background: #81b5e4;
}
.admin-menu-container .item:hover .icons {
filter: brightness(100);
}
.admin-menu-container .title {
width: calc(100% - 33px);
}
.admin-menu-container .sub-menu {
padding: 13px 13px 13px 45px;
position: relative;
}
.admin-menu-container .sub-menu::before {
content: "";
width: 1px;
height: calc(100% - 39px);
background: #79b0e2;
position: absolute;
left: 20px;
top: 20px;
}
.admin-menu-container .sub-menu a {
display: block;
margin-bottom: 15px;
position: relative;
}
.admin-menu-container .sub-menu a:hover {
text-decoration: underline;
}
.admin-menu-container .sub-menu a::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -28px;
}
.admin-menu-container .sub-menu a:last-child {
margin: 0;
}
.admin-menu-container .icons {
width: 20px;
height: 20px;
margin-right: 13px;
}
.admin-menu-container .icon-home {
background-position: -9px -7px;
}
.admin-menu-container .icon-sell {
background-position: -45px -7px;
}
.admin-menu-container .icon-product {
background-position: -81px -8px;
}
.admin-menu-container .icon-user {
background-position: -117px -8px;
}
.admin-menu-container .icon-marketing {
background-position: -154px -8px;
}
.admin-menu-container .icon-content {
background-position: -187px -8px;
}
.admin-menu-container .icon-stats {
background-position: -224px -8px;
}
.admin-menu-container .icon-system {
background-position: -262px -8px;
}
.admin-menu-container .icon-settings {
background-position: -297px -8px;
}
.admin-menu-container .icon-support {
background-position: -332px -7px;
}
.admin-menu-container .icon-account {
background-position: -367px -9px;
}
.admin-menu-container .icon-logout {
background-position: -9px -45px;
}
.admin-menu-container .icon-close {
position: absolute;
right: 10px;
}
.admin-menu {
color: #fff;
z-index: 1;
}
.admin-menu .item {
display: flex;
align-items: center;
transition: 0.3s all;
position: relative;
}
.admin-menu .item:hover {
background: #81b5e4;
}
.admin-menu .item:hover .icons {
filter: brightness(100);
}
.admin-menu .item:hover .sub-menu {
left: calc(100% + 8px);
opacity: 1;
visibility: inherit;
}
.admin-menu .item.bottom:hover .sub-menu {
top: auto;
bottom: 0;
}
.admin-menu .sub-menu {
padding: 10px 22px 10px 15px;
border-radius: 6px;
background: #004e99;
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
white-space: nowrap;
min-width: 150px;
z-index: -1;
transition: 0.2s all;
position: absolute;
left: calc(100% + 30px);
top: 0;
opacity: 0;
visibility: hidden;
min-width: 200px;
}
.admin-menu .sub-menu a {
display: block;
margin-bottom: 12px;
line-height: 18px;
position: relative;
}
.admin-menu .sub-menu a:hover {
text-decoration: underline;
}
.admin-menu .sub-menu a::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -18px;
}
.admin-menu .sub-menu a:last-child {
margin: 0;
}
.admin-menu .menu-list {
padding-left: 16px;
margin-top: 10px;
position: relative;
}
.admin-menu .menu-list::before {
content: "";
width: 1.5px;
background: #79b0e2;
position: absolute;
left: 1px;
top: 7px;
bottom: 7px;
}
.admin-menu .icons {
width: 50px;
height: 40px;
}
.admin-menu .icon-home {
background-position: 7px 3px;
}
.admin-menu .icon-sell {
background-position: -29px 3px;
}
.admin-menu .icon-product {
background-position: -66px 3px;
}
.admin-menu .icon-user {
background-position: -103px 3px;
}
.admin-menu .icon-marketing {
background-position: -139px 3px;
}
.admin-menu .icon-content {
background-position: -172px 3px;
}
.admin-menu .icon-stats {
background-position: -208px 3px;
}
.admin-menu .icon-system {
background-position: -247px 3px;
}
.admin-menu .icon-settings {
background-position: -282px 2px;
margin-left: -1px;
}
.admin-menu .icon-support {
background-position: -318px 3px;
}
.admin-menu .icon-account {
background-position: -354px 2px;
}
.admin-menu .icon-logout {
background-position: 6px -34px;
}
.admin-menu .icon-close {
position: absolute;
right: -30px;
height: 30px;
width: 30px;
display: none;
background-color: rgb(0 78 153/var(--tw-bg-opacity));
}
.admin-menu .icon-close i {
display: block;
margin: 0 auto;
text-align: center;
margin-top: 6px;
line-height: 20px;
}
.admin-menu:hover .icon-close {
display: block;
}
.admin-content-container .note-list {
min-width: 144px;
}
.admin-content-container .note-list a {
display: block;
padding: 0 10px;
line-height: 35px;
transition: 0.2s all;
}
.admin-content-container .note-list a:hover {
background: #f5f7ff;
color: #0041e8;
font-weight: 600;
}
.admin-content-container .content-holder {
padding: 16px 0 16px 16px;
}
.table-fixed {
text-align: center;
}
.table-fixed td {
padding: 13px 8px;
border: 1px solid #ececec;
}
.table-fixed tbody td {
padding: 5px 8px;
}
.table-fixed tbody td:nth-child(2), .table-fixed tbody td:nth-child(3) {
text-align: left;
}
.table-fixed tbody td:nth-child(2) {
color: #0041e8;
}
.admin-home-tab {
overflow: auto;
}
.admin-home-tab a {
color: #a0a8b5;
padding: 9px 7.7px;
text-align: center;
border-right: 1px solid #dde1eb;
white-space: nowrap;
}
.admin-home-tab a:last-child {
border: 0;
}
.admin-home-tab a:hover, .admin-home-tab a.current {
background: #0041e8;
color: #fff;
}
.home-report-holder {
display: none;
}
.home-report-holder table {
width: 100%;
line-height: 20px;
text-align: center;
}
.home-report-holder thead {
background: #f6f6f6;
font-weight: 500;
}
.home-report-holder td {
border: 1px solid #ececec;
padding: 14px 5px;
}
.home-report-holder td a {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.home-report-holder td:nth-child(2) {
text-align: left;
}
.home-todo-list td {
padding: 0 4px;
color: #000 !important;
}
.home-todo-list td:nth-child(1), .home-todo-list td:nth-child(3), .home-todo-list td:nth-child(4) {
white-space: nowrap;
}
.product-list th {
padding: 10px;
border: 1px solid #ececec;
background: #f6f6f6;
}
.product-list td {
padding: 8px;
border: 1px solid #ececec;
}
.product-sale-info td {
padding: 14px;
border: 1px solid #ececec;
}
input[type=radio] {
position: absolute;
}
input[type=radio]:before {
content: "";
background: #fff;
border-radius: 100%;
border: 1.5px solid #0041e8;
display: inline-block;
width: 20px;
height: 20px;
position: relative;
top: -0.2em;
margin-right: 1em;
vertical-align: top;
cursor: pointer;
text-align: center;
transition: all 250ms ease;
}
input[type=radio]:checked:before {
background-color: #0041e8;
box-shadow: inset 0 0 0 4px #fff;
}
input[type=radio]:focus:before {
outline: none;
border-color: #0041e8;
}
.table-seo td {
padding: 14px;
border: 1px solid #ececec;
}
.product-specifications td {
padding: 14px;
border: 1px solid #ececec;
}
.table-config th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
.table-config td {
padding: 10px;
border: 1px solid #ececec;
}
.accessory th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
.accessory td {
padding: 10px 6px;
border: 1px solid #ececec;
}/*# sourceMappingURL=pc_style.css.map */

View File

@@ -1 +0,0 @@
{"version":3,"sources":["pc_style.scss","pc_style.css"],"names":[],"mappings":"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","file":"pc_style.css"}

View File

@@ -1,595 +0,0 @@
*,
::after,
::before {
box-sizing: border-box;
}
button,
input,
select {
outline: none !important;
color: #000;
border-radius: 0;
}
button,
input {
overflow: visible;
}
button,
input,
optgroup,
select,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
border-radius: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
body {
color: #000;
font-family: "Inter", sans-serif;
background: #fafafb;
position: relative;
font-size: 14px;
word-break: break-word;
counter-reset: section;
font-weight: 400;
line-height: 1.5;
margin: auto;
}
img {
max-width: 100%;
height: auto;
}
a {
text-decoration: none;
}
::-webkit-scrollbar-track {
background: #f5f5f5;
}
::-webkit-scrollbar-thumb {
background: grey;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: #ccc;
}
::-webkit-scrollbar {
width: 8px;
height: 10px;
}
.clearfix {
&::after {
content: "";
clear: both;
display: block;
}
}
.inherit {
font-size: inherit;
font-weight: inherit;
line-height: inherit;
margin: 0;
}
.line-clamp-2 {
text-overflow: ellipsis;
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
text-overflow: ellipsis;
-webkit-line-clamp: 3;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-4 {
text-overflow: ellipsis;
-webkit-line-clamp: 4;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-5 {
text-overflow: ellipsis;
-webkit-line-clamp: 5;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.icons {
background: url(../images/global-sprite.png) no-repeat;
background-size: 400px 400px;
}
.admin-global-container {
max-width: 1720px;
margin: auto;
display: flex;
}
.admin-menu-container {
position: relative;
overflow: auto;
background: #004e99;
color: #fff;
width: 16%;
padding: 20px 0;
line-height: 20px;
a {
color: #fff;
}
.menu-logo {
display: table;
margin-bottom: 50px;
margin-left: 16px;
img {
height: 22px;
}
}
.menu-list {
margin: 50px 0;
}
details {
&[open] {
svg {
transform: rotate(90deg);
}
summary {
background: #81b5e4;
a {
font-weight: 700;
}
}
.icons {
filter: brightness(100);
}
}
}
summary {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
padding-right: 16px;
border-radius: 4px;
position: relative;
transition: 0.3s all;
a {
padding: 8px 16px;
display: flex;
align-items: center;
}
}
svg {
position: absolute;
right: 16px;
transition: 0.3s all;
}
.item {
display: flex;
align-items: center;
padding: 0 16px;
line-height: 36px;
transition: 0.3s all;
border-radius: 4px;
&:hover {
background: #81b5e4;
.icons {
filter: brightness(100);
}
}
}
.title {
width: calc(100% - 33px);
}
.sub-menu {
padding: 13px 13px 13px 45px;
position: relative;
&::before {
content: "";
width: 1px;
height: calc(100% - 39px);
background: #79b0e2;
position: absolute;
left: 20px;
top: 20px;
}
a {
display: block;
margin-bottom: 15px;
position: relative;
&:hover {
text-decoration: underline;
}
&::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -28px;
}
&:last-child {
margin: 0;
}
}
}
.icons {
width: 20px;
height: 20px;
margin-right: 13px;
}
.icon-home {
background-position: -9px -7px;
}
.icon-sell {
background-position: -45px -7px;
}
.icon-product {
background-position: -81px -8px;
}
.icon-user {
background-position: -117px -8px;
}
.icon-marketing {
background-position: -154px -8px;
}
.icon-content {
background-position: -187px -8px;
}
.icon-stats {
background-position: -224px -8px;
}
.icon-system {
background-position: -262px -8px;
}
.icon-settings {
background-position: -297px -8px;
}
.icon-support {
background-position: -332px -7px;
}
.icon-account {
background-position: -367px -9px;
}
.icon-logout {
background-position: -9px -45px;
}
.icon-close {
position: absolute;
right: 10px;
}
}
.admin-menu {
color: #fff;
z-index: 1;
.item {
display: flex;
align-items: center;
transition: 0.3s all;
position: relative;
&:hover {
background: #81b5e4;
.icons {
filter: brightness(100);
}
.sub-menu {
left: calc(100% + 8px);
opacity: 1;
visibility: inherit;
}
}
&.bottom {
&:hover {
.sub-menu {
top: auto;
bottom: 0;
}
}
}
}
.sub-menu {
padding: 10px 22px 10px 15px;
border-radius: 6px;
background: #004e99;
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
white-space: nowrap;
min-width: 150px;
z-index: -1;
transition: 0.2s all;
position: absolute;
left: calc(100% + 30px);
top: 0;
opacity: 0;
visibility: hidden;
min-width: 200px;
a {
display: block;
margin-bottom: 12px;
line-height: 18px;
position: relative;
&:hover {
text-decoration: underline;
}
&::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -18px;
}
&:last-child {
margin: 0;
}
}
}
.menu-list {
padding-left: 16px;
margin-top: 10px;
position: relative;
&::before {
content: "";
width: 1.5px;
background: #79b0e2;
position: absolute;
left: 1px;
top: 7px;
bottom: 7px;
}
}
.icons {
width: 50px;
height: 40px;
}
.icon-home {
background-position: 7px 3px;
}
.icon-sell {
background-position: -29px 3px;
}
.icon-product {
background-position: -66px 3px;
}
.icon-user {
background-position: -103px 3px;
}
.icon-marketing {
background-position: -139px 3px;
}
.icon-content {
background-position: -172px 3px;
}
.icon-stats {
background-position: -208px 3px;
}
.icon-system {
background-position: -247px 3px;
}
.icon-settings {
background-position: -282px 2px;
margin-left: -1px;
}
.icon-support {
background-position: -318px 3px;
}
.icon-account {
background-position: -354px 2px;
}
.icon-logout {
background-position: 6px -34px;
}
.icon-close {
position: absolute;
right: -30px;
height: 30px;
width: 30px;
display: none;
background-color: rgb(0 78 153 / var(--tw-bg-opacity));
i {
display: block;
margin: 0 auto;
text-align: center;
margin-top: 6px;
line-height: 20px;
}
}
&:hover {
.icon-close {
display: block;
}
}
}
.admin-content-container {
.note-list {
min-width: 144px;
a {
display: block;
padding: 0 10px;
line-height: 35px;
transition: 0.2s all;
&:hover {
background: #f5f7ff;
color: #0041e8;
font-weight: 600;
}
}
}
.content-holder {
padding: 16px 0 16px 16px;
}
}
.table-fixed {
text-align: center;
td {
padding: 13px 8px;
border: 1px solid #ececec;
}
tbody {
td {
padding: 5px 8px;
&:nth-child(2),
&:nth-child(3) {
text-align: left;
}
&:nth-child(2) {
color: #0041e8;
}
}
}
}
.admin-home-tab {
overflow: auto;
a {
color: #a0a8b5;
padding: 9px 7.7px;
text-align: center;
border-right: 1px solid #dde1eb;
white-space: nowrap;
&:last-child {
border: 0;
}
&:hover,
&.current {
background: #0041e8;
color: #fff;
}
}
}
.home-report-holder {
display: none;
table {
width: 100%;
line-height: 20px;
text-align: center;
}
thead {
background: #f6f6f6;
font-weight: 500;
}
td {
border: 1px solid #ececec;
padding: 14px 5px;
a {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&:nth-child(2) {
text-align: left;
}
}
}
.home-todo-list {
td {
padding: 0 4px;
color: #000 !important;
&:nth-child(1),
&:nth-child(3),
&:nth-child(4) {
white-space: nowrap;
}
}
}
.product-list {
th {
padding: 10px;
border: 1px solid #ececec;
background: #f6f6f6;
}
td {
padding: 8px;
border: 1px solid #ececec;
}
}
.product-sale-info {
td {
padding: 14px;
border: 1px solid #ececec;
}
}
input[type="radio"] {
position: absolute;
&:before {
content: "";
background: #fff;
border-radius: 100%;
border: 1.5px solid #0041e8;
display: inline-block;
width: 20px;
height: 20px;
position: relative;
top: -0.2em;
margin-right: 1em;
vertical-align: top;
cursor: pointer;
text-align: center;
transition: all 250ms ease;
}
&:checked {
&:before {
background-color: #0041e8;
box-shadow: inset 0 0 0 4px #fff;
}
}
&:focus {
&:before {
outline: none;
border-color: #0041e8;
}
}
}
.table-seo {
td {
padding: 14px;
border: 1px solid #ececec;
}
}
.product-specifications {
td {
padding: 14px;
border: 1px solid #ececec;
}
}
.table-config {
th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
td {
padding: 10px;
border: 1px solid #ececec;
}
}
.accessory {
th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
td {
padding: 10px 6px;
border: 1px solid #ececec;
}
}

View File

@@ -0,0 +1,2 @@
@import "tailwindcss";
@plugin "daisyui";

File diff suppressed because one or more lines are too long

32
assets/typescript/main.ts Normal file
View File

@@ -0,0 +1,32 @@
"use strict";
interface AdminFunctions {
addProductToCategory(productId: string): void;
markProductAsHot(productId: string): void;
}
const AdminFunctions: AdminFunctions = (() => {
function addProductToCategory(productId: string): void {
const statusElement = $('#status_' + productId);
statusElement.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>');
setTimeout(() => {
statusElement.html('');
}, 1000);
}
function markProductAsHot(productId: string): void {
const statusElement = $('#js-status-hottype-' + productId);
statusElement.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>');
setTimeout(() => {
statusElement.html('');
}, 1000);
}
return {
addProductToCategory,
markProductAsHot
};
})();
export default AdminFunctions;

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/admin/login_log.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

3
data/customer/home.php Normal file
View File

@@ -0,0 +1,3 @@
<?php

1
data/customer/review.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/job/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/media/category.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/media/upload.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -9,7 +9,7 @@ function _get_menu_list() {
'product',
'customer',
'marketing',
'investor_relation',
//'investor_relation',
'article',
'job',
'pcbuilder',
@@ -21,8 +21,38 @@ function _get_menu_list() {
$menu_list = [];
foreach ($main_items as $item) {
$menu_list[$item] = include_once __DIR__."/menu_item/".$item.".php";
$item_menu = include_once __DIR__."/menu_item/".$item.".php";
// skip not enabled
if(!$item_menu['enable']) {
continue;
}
// skip not enabled children
$item_menu_children_enabled = array_filter($item_menu['menu'], function ($menu_child) { return $menu_child['enable'];});
if(!sizeof($item_menu_children_enabled)) {
continue;
}
$menu_list[] = [
'id' => $item,
'name' => $item_menu['name'],
'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;
}

View File

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

View File

@@ -12,7 +12,7 @@ return array(
'view' => 'home',
'id' => 'ask/home',
'name' => 'Danh sách câu hỏi',
'url' => '/admin/?opt=ask',
'url' => '/admin/ask',
),
1 => array(
@@ -21,7 +21,7 @@ return array(
'view' => 'answer-list',
'id' => 'ask/answer-list',
'name' => 'Danh sách trả lời',
'url' => '/admin/?opt=ask&view=answer-list',
'url' => '/admin/ask/answer-list',
),
2 => array(
@@ -30,7 +30,7 @@ return array(
'view' => 'category',
'id' => 'ask/ask',
'name' => 'Danh mục hỏi đáp',
'url' => '/admin/?opt=ask&view=category',
'url' => '/admin/ask/category',
),
),
);

View File

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

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Đại lý",
"icon_class" => 'shopping-bag',
"url" => "",
"menu" => array(
0 => array(
@@ -11,7 +12,8 @@ return array(
'view' => 'home',
'id' => 'distributor/home',
'name' => 'Danh sách',
'url' => '/admin/?opt=distributor',
"icon_class" => '',
'url' => '/admin/distributor',
),
),
);

View File

@@ -11,7 +11,7 @@ return array(
'view' => 'annual_report',
'name' => 'Báo cáo thường niên',
'id' => 'investor_relation/annual_report',
'url' => '/admin/?opt=investor_relation&view=annual_report',
'url' => '/admin/investor_relation/annual_report',
),
array(
'enable' => true ,
@@ -19,7 +19,7 @@ return array(
'view' => 'charter',
'name' => 'Điều lệ hoạt động',
'id' => 'investor_relation/charter',
'url' => '/admin/?opt=investor_relation&view=charter',
'url' => '/admin/investor_relation/charter',
),
array(
'enable' => true ,
@@ -27,7 +27,7 @@ return array(
'view' => 'governance',
'name' => 'Quy chế quản trị',
'id' => 'investor_relation/governance',
'url' => '/admin/?opt=investor_relation&view=governance',
'url' => '/admin/investor_relation/governance',
),
array(
'enable' => true ,
@@ -35,7 +35,7 @@ return array(
'view' => 'financial_reports',
'name' => 'Báo cáo tài chính',
'id' => 'investor_relation/financial_reports',
'url' => '/admin/?opt=investor_relation&view=financial_reports',
'url' => '/admin/investor_relation/financial_reports',
),
array(
'enable' => true ,
@@ -43,7 +43,7 @@ return array(
'view' => 'info_disclosure',
'name' => 'Công bố thông tin',
'id' => 'investor_relation/info_disclosure',
'url' => '/admin/?opt=investor_relation&view=info_disclosure',
'url' => '/admin/investor_relation/info_disclosure',
),
array(
'enable' => true ,
@@ -51,7 +51,7 @@ return array(
'view' => 'management_report',
'name' => 'Báo cáo quản trị',
'id' => 'investor_relation/management_report',
'url' => '/admin/?opt=investor_relation&view=management_report',
'url' => '/admin/investor_relation/management_report',
),
array(
'enable' => true ,
@@ -59,7 +59,7 @@ return array(
'view' => 'shareholder_meeting',
'name' => 'Đại hội cổ đông',
'id' => 'investor_relation/shareholder_meeting',
'url' => '/admin/?opt=investor_relation&view=shareholder_meeting',
'url' => '/admin/investor_relation/shareholder_meeting',
),
array(
'enable' => true ,
@@ -67,7 +67,7 @@ return array(
'view' => 'whitepaper',
'name' => 'Báo cáo bạch',
'id' => 'investor_relation/whitepaper',
'url' => '/admin/?opt=investor_relation&view=whitepaper',
'url' => '/admin/investor_relation/whitepaper',
),
),
);

View File

@@ -3,16 +3,16 @@
return array(
'enable' => true ,
"name" => "Tuyển dụng",
"icon_class" => 'megaphone',
"url" => "",
"menu" => array(
array(
'enable' => true ,
'module' => 'job',
'view' => 'home',
'id' => 'job/home',
'name' => 'Vị trí tuyển',
'url' => '/admin/?opt=job',
'url' => '/admin/job',
),
array(
@@ -21,7 +21,7 @@ return array(
'view' => 'home',
'id' => 'job/home',
'name' => 'Quản lý hồ sơ',
'url' => '/admin/?opt=job&view=applicants',
'url' => '/admin/job/applicants',
),
),
);

View File

@@ -2,26 +2,28 @@
return array(
'enable' => true ,
"name" => "Marketing",
"icon_class" => 'newspaper',
"url" => "",
"menu" => array(
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'promotion',
'id' => 'marketing/promotion',
'name' => 'Khuyến mại theo sản phẩm',
'url' => '/admin/?opt=marketing&view=promotion',
"icon_class" => '',
'url' => '/admin/marketing/promotion',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'coupon',
'id' => 'marketing/coupon',
'name' => 'Phiếu giảm giá - Voucher',
'url' => '/admin/?opt=marketing&view=coupon',
"icon_class" => '',
'url' => '/admin/marketing/coupon',
),
array(
@@ -30,7 +32,8 @@ return array(
'view' => 'home',
'id' => 'banner/home',
'name' => 'Danh sách banner',
'url' => '/admin/?opt=banner',
"icon_class" => '',
'url' => '/admin/banner',
),
array(
@@ -39,7 +42,8 @@ return array(
'view' => 'store-design',
'id' => 'system/store-design',
'name' => 'Banner pop-up',
'url' => '/admin/?opt=system&view=store-design&section=popup',
"icon_class" => '',
'url' => '/admin/system/store-design?section=popup',
),
array(
@@ -48,61 +52,68 @@ return array(
'view' => 'poster-upload',
'id' => 'marketing/poster-upload',
'name' => 'Poster',
'url' => '/admin/?opt=marketing&view=poster-upload',
"icon_class" => '',
'url' => '/admin/marketing/poster-upload',
),
array(
/* array(
'enable' => true ,
'module' => 'system',
'view' => 'store-design',
'id' => 'system/store-design',
'name' => 'Hình nền website',
'url' => '/admin/?opt=system&view=store-design&section=background',
),
"icon_class" => '',
'url' => '/admin/system/store-design?section=background',
),*/
array(
'enable' => false,
/* array(
'enable' => true,
'module' => 'email',
'view' => 'home',
'id' => 'email/home',
'name' => 'Email',
'url' => '/admin/?opt=email',
),
"icon_class" => '',
'url' => '/admin/email',
),*/
array(
'enable' => false,
'enable' => true,
'module' => 'url',
'view' => 'meta-list',
'id' => 'url/meta-list',
'name' => 'Sửa thông tin URL',
'url' => '/admin/?opt=url&view=meta-list',
"icon_class" => '',
'url' => '/admin/url/meta-list',
),
array(
'enable' => false,
'enable' => true,
'module' => 'url',
'view' => 'url-seo',
'id' => 'url/url-seo',
'name' => 'Link SEO',
'url' => '/admin/?opt=url&view=url-seo',
"icon_class" => '',
'url' => '/admin/url/url-seo',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'feed',
'id' => 'marketing/feed',
'name' => 'Facebook/Google Feed',
'url' => '/admin/?opt=marketing&view=feed',
"icon_class" => '',
'url' => '/admin/marketing/feed',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'product-offer',
'id' => 'marketing/product-offer',
'name' => 'Cài biểu tượng giảm giá',
'url' => '/admin/?opt=marketing&view=product-offer',
"icon_class" => '',
'url' => '/admin/marketing/product-offer',
),
/*array(
@@ -111,52 +122,57 @@ return array(
'view' => 'lead-program',
'id' => 'marketing/lead-program',
'name' => 'Thu thập khách hàng',
'url' => '/admin/?opt=marketing&view=lead-program',
'url' => '/admin/marketing/lead-program',
),*/
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'program',
'id' => 'marketing/program',
'name' => 'Chương trình khuyến mại',
'url' => '/admin/?opt=marketing&view=program',
"icon_class" => '',
'url' => '/admin/marketing/program',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'deal',
'view' => 'home',
'id' => 'deal/home',
'name' => 'Deal/giờ vàng',
'url' => '/admin/?opt=deal',
"icon_class" => '',
'url' => '/admin/deal',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'combo-deal',
'id' => 'marketing/combo-deal',
'name' => 'Bán Combo',
'url' => '/admin/?opt=marketing&view=combo-deal',
"icon_class" => '',
'url' => '/admin/marketing/combo-deal',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'conditional-promotion',
'id' => 'marketing/conditional-promotion',
'name' => 'Khuyến mại BuildPC',
'url' => '/admin/?opt=marketing&view=conditional-promotion',
"icon_class" => '',
'url' => '/admin/marketing/conditional-promotion',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'live-support-per-category',
'id' => 'marketing/live-support-per-category',
'name' => 'Hỗ trợ theo từng danh mục',
'url' => '/admin/?opt=marketing&view=live-support-per-category',
"icon_class" => '',
'url' => '/admin/marketing/live-support-per-category',
),
),

View File

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

View File

@@ -2,35 +2,35 @@
return array(
'enable' => true ,
"name" => "Trả góp",
"icon_class" => "handshake",
"url" => "",
"menu" => array(
0 => array(
array(
'enable' => true ,
'module' => 'payinstall',
'view' => 'order',
'id' => 'payinstall/order',
'name' => 'Danh sách đơn hàng',
'url' => '/admin/?opt=payinstall&view=order',
'url' => '/admin/payinstall/order',
),
1 => array(
array(
'enable' => true ,
'module' => 'payinstall',
'view' => 'home',
'id' => 'payinstall/home',
'name' => 'Cài đặt trả góp',
'url' => '/admin/?opt=payinstall',
'url' => '/admin/payinstall',
),
2 => array(
array(
'enable' => true ,
'module' => 'payinstall',
'view' => 'category',
'id' => 'payinstall/category',
'name' => 'Danh mục sản phẩm',
'url' => '/admin/?opt=payinstall&view=category',
'url' => '/admin/payinstall/category',
),
),
);

View File

@@ -2,8 +2,8 @@
return array(
'enable' => true ,
"name" => "Xây dựng máy tính",
"icon_class" => 'monitor-smartphone',
"url" => "",
"menu" => array(
array(
@@ -12,7 +12,7 @@ return array(
'view' => 'home',
'id' => 'pcbuilder/home',
'name' => 'Linh kiện xây dựng',
'url' => '/admin/?opt=pcbuilder',
'url' => '/admin/pcbuilder',
),
array(
@@ -21,7 +21,7 @@ return array(
'view' => 'preconfig',
'id' => 'pcbuilder/preconfig',
'name' => 'Bộ máy tính mẫu',
'url' => '/admin/?opt=pcbuilder&view=preconfig',
'url' => '/admin/pcbuilder/preconfig',
),
),

View File

@@ -4,8 +4,8 @@
return array(
'enable' => true ,
"name" => "Sản phẩm",
"icon_class" => 'package',
"url" => "",
"menu" => array(
array(
@@ -14,35 +14,36 @@ return array(
'view' => 'home',
'id' => 'product/home',
'name' => 'Sản phẩm',
'url' => '/admin/?opt=product',
"icon_class" => '',
'url' => '/admin/product',
),
array(
/* array(
'enable' => false ,
'module' => 'product',
'view' => 'user-rating',
'id' => 'product/user-rating',
'name' => 'Đánh giá ',
'url' => '/admin/?opt=product&view=user-rating',
),
'url' => '/admin/product/user-rating',
),*/
array(
/*array(
'enable' => false ,
'module' => 'product',
'view' => 'product-customer-image',
'id' => 'product/product-customer-image',
'name' => 'Ảnh người dùng gửi',
'url' => '/admin/?opt=product&view=product-customer-image',
),
'url' => '/admin/product/product-customer-image',
),*/
array(
/*array(
'enable' => true ,
'module' => 'product',
'view' => 'product-list-update',
'id' => 'product/product-list-update',
'name' => 'Bảng giá cập nhật',
'url' => '/admin/?opt=product&view=product-list-update',
),
'url' => '/admin/product/product-list-update',
),*/
array(
'enable' => true ,
@@ -50,7 +51,8 @@ return array(
'view' => 'category',
'id' => 'product/category',
'name' => 'Danh mục',
'url' => '/admin/?opt=product&view=category',
"icon_class" => '',
'url' => '/admin/product/category',
),
array(
'enable' => true ,
@@ -58,7 +60,8 @@ return array(
'view' => 'home',
'id' => 'brand/home',
'name' => 'Thương hiệu',
'url' => '/admin/?opt=brand',
"icon_class" => '',
'url' => '/admin/product/brand',
),
array(
'enable' => true ,
@@ -66,7 +69,8 @@ return array(
'view' => 'attribute',
'id' => 'product/attribute',
'name' => 'Thuộc tính ',
'url' => '/admin/?opt=product&view=attribute',
"icon_class" => '',
'url' => '/admin/product/attribute',
),
array(
'enable' => true ,
@@ -74,7 +78,8 @@ return array(
'view' => 'collection',
'id' => 'product/collection',
'name' => 'Bộ sưu tập',
'url' => '/admin/?opt=product&view=collection',
"icon_class" => '',
'url' => '/admin/product/collection',
),
array(
@@ -83,79 +88,68 @@ return array(
'view' => 'product-wait-list',
'id' => 'product/product-wait-list',
'name' => 'Chờ mua sản phẩm',
'url' => '/admin/?opt=product&view=product-wait-list',
"icon_class" => '',
'url' => '/admin/product/product-wait-list',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'addon',
'view' => 'home',
'id' => 'addon/home',
'name' => 'SP/Dịch vụ mua kèm',
'url' => '/admin/?opt=addon',
"icon_class" => '',
'url' => '/admin/product/addon',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'config_group',
'view' => 'home',
'id' => 'config_group/home',
'name' => 'Nhóm cấu hình',
'url' => '/admin/?opt=config_group',
"icon_class" => '',
'url' => '/admin/product/config_group',
),
array(
/*array(
'enable' => false ,
'module' => 'supplier',
'view' => 'home',
'id' => 'supplier/home',
'name' => 'Nhà cung cấp',
'url' => '/admin/?opt=supplier',
),
"icon_class" => '',
'url' => '/admin/supplier',
),*/
array(
'enable' => false ,
'module' => 'product',
'view' => 'product-erp-not-web',
'id' => 'product/product-erp-not-web',
'name' => 'SP ERP chưa có trên web',
'url' => '/admin/?opt=product&view=product-erp-not-web',
),
array(
/* array(
'enable' => false ,
'module' => 'product',
'view' => 'set-promotion-price',
'id' => 'product/set-promotion-price',
'name' => 'Cài đặt giá khuyến mại',
'url' => '/admin/?opt=product&view=set-promotion-price',
),
"icon_class" => '',
'url' => '/admin/product/set-promotion-price',
),*/
array(
/*array(
'enable' => false ,
'module' => 'product',
'view' => 'product-per-customer-group',
'id' => 'product/product-per-customer-group',
'name' => 'Giá theo nhóm khách hàng',
'url' => '/admin/?opt=product&view=product-per-customer-group',
),
"icon_class" => '',
'url' => '/admin/product/product-per-customer-group',
),*/
array(
'enable' => false ,
'module' => 'product',
'view' => 'list-competitor',
'id' => 'product/list-competitor',
'name' => 'So sánh giá đối thủ',
'url' => '/admin/?opt=product&view=list-competitor',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'product',
'view' => 'set',
'id' => 'product/set',
'name' => 'Set sản phẩm',
'url' => '/admin/?opt=product&view=set',
"icon_class" => '',
'url' => '/admin/product/set',
),
array(
@@ -164,8 +158,18 @@ return array(
'view' => 'spec-group',
'id' => 'product/spec-group',
'name' => 'Nhóm thông số kỹ thuật',
'url' => '/admin/?opt=product&view=spec-group',
"icon_class" => '',
'url' => '/admin/product/spec-group',
),
array(
'enable' => true ,
'module' => 'product',
'view' => 'list-competitor',
'id' => 'product/list-competitor',
'name' => 'So sánh giá đối thủ',
"icon_class" => '',
'url' => '/admin/product/list-competitor',
),
),
);

View File

@@ -4,78 +4,87 @@ return array(
'enable' => true ,
"name" => "Thống kê",
"icon_class" => 'pie-chart',
"url" => "",
"menu" => array(
0 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'visitor',
'id' => 'report/visitor',
'name' => 'Thống kê truy cập',
'url' => '/admin/?opt=report&view=visitor',
"icon_class" => '',
'url' => '/admin/report/visitor',
),
1 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'customer',
'id' => 'report/customer',
'name' => 'Thống kê khách hàng',
'url' => '/admin/?opt=report&view=customer',
"icon_class" => '',
'url' => '/admin/report/customer',
),
2 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'order',
'id' => 'report/order',
'name' => 'Thống kê đơn hàng',
'url' => '/admin/?opt=report&view=order',
"icon_class" => '',
'url' => '/admin/report/order',
),
3 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'product-buy',
'id' => 'report/product-buy',
'name' => 'Sản phẩm mua nhiều',
'url' => '/admin/?opt=report&view=product-buy',
"icon_class" => '',
'url' => '/admin/report/product-buy',
),
4 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'product-visit',
'id' => 'report/product-visit',
'name' => 'Sản phẩm xem nhiều',
'url' => '/admin/?opt=report&view=product-visit',
"icon_class" => '',
'url' => '/admin/report/product-visit',
),
5 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'referer',
'id' => 'report/referer',
'name' => 'Web giới thiệu',
'url' => '/admin/?opt=report&view=referer',
"icon_class" => '',
'url' => '/admin/report/referer',
),
6 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'search',
'id' => 'report/search',
'name' => 'Từ khóa tìm kiếm',
'url' => '/admin/?opt=report&view=search',
"icon_class" => '',
'url' => '/admin/report/search',
),
/*7 => array(
array(
'enable' => true ,
'module' => 'report',
'view' => 'error-page',
'id' => '',
'name' => 'Lỗi website',
'url' => '/admin/?opt=report&view=error-page',
),*/
"icon_class" => '',
'url' => '/admin/report/error-page',
),
),
);

View File

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

View File

@@ -4,6 +4,7 @@ return array(
'enable' => true ,
"name" => "Bảo hành sản phẩm",
"icon_class" => '',
"url" => "",
"menu" => array(
/*0 => array(
@@ -12,7 +13,7 @@ return array(
'view' => 'home',
'id' => '',
'name' => 'Khách hàng đăng ký',
'url' => '/admin/?opt=warranty&view=customer-register',
'url' => '/admin/warranty/customer-register',
),*/
array(
@@ -21,7 +22,7 @@ return array(
'view' => 'home',
'id' => 'warranty/home',
'name' => 'Danh sách bảo hành',
'url' => '/admin/?opt=warranty',
'url' => '/admin/warranty',
),
),
);

View File

@@ -0,0 +1 @@
<?php

55
data/order/home.php Normal file
View File

@@ -0,0 +1,55 @@
<?php
use Hura8\Components\Order\AdminController\AOrderController;
use Hura8\Components\Order\Controller\OrderStatus;
use Hura8\System\Paging;
$numPerPage = 30;
$conditions = array(
'orderCode' => getRequest('orderCode', ''),
'q' => getRequest('q', ''),
//'coupon' => getRequest('coupon', ''),
'cus_id' => getRequest('cus_id', ''),
'province' => getRequest('province', ''),
//'district' => getRequest('district', ''),
'folder' => getRequest('folder', ''),
'view_status' => getRequest('view_status', ''),
'update_by' => getRequest('update_by', ''),
//'shipping_status' => getRequest('shipping_status', ''),
'assign_to' => getRequest('assign_to', ''),
'from_date' => getRequest('from_date', ''),
'to_date' => getRequest('to_date', ''),
//'from_hour' => getRequest('from_hour', ''),
//'to_hour' => getRequest('to_hour', ''),
'payment' => getRequest('payment', ''),
'fullfillment' => getRequest('fullfillment', ''),
'status' => getRequest('status', ''),
//'excluded_ids' => getRequest('', ''),
//'included_ids' => getRequest('', ''),
'list' => getRequest('list', ''),
'numPerPage' => $numPerPage,
'page' => getPageId(),
);
$objAOrderController = new AOrderController();
$totalResults = $objAOrderController->getTotal($conditions);
$item_list = $objAOrderController->getList($conditions);
//debug_var($item_list);
list($page_collection, $tb_page, $total_pages) = Paging::paging_template($totalResults, $numPerPage);
return [
"total" => $totalResults,
"item_list" => $item_list,
"pagination" => [
'collection' => $page_collection,
'html' => $tb_page,
'total_pages' => $total_pages,
],
"order_status_list" => OrderStatus::ORDER_STATUS ,
"payment_status_list" => OrderStatus::PAYMENT_STATUS,
"fullfillment_status_list" => OrderStatus::FULFILLMENT_STATUS ,
];

1
data/page/category.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/page/form.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/page/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/payinstall/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/pcbuilder/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/product/addon.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/product/brand.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

108
data/product/category.php Normal file
View File

@@ -0,0 +1,108 @@
<?php
use Hura8\Components\Product\AdminController\AProductCategoryController;
$objAProductCategoryController = new AProductCategoryController();
$category_collection = $objAProductCategoryController->getAllParent();
return [
'category_list' => get_category_list(0, getRequest("id"), $level=1, $prefix="", $category_collection )
];
function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $category_collection = array()){
$categoryTree = "";
$extra_space = "";
for($i = 1; $i < $level; $i++){
$extra_space .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}
$stt = 0;
if(isset($category_collection[$parentId])) {
foreach($category_collection[$parentId] as $index => $cat_info){
$cat_id = $cat_info['id'];
$stt ++;
$imgUrl = (strlen($cat_info["thumbnail"]) > 2) ? " <img src=\"".$cat_info["thumbnail"]."\" style=\"max-width:30px; max-height:30px;\" />" : "";
if($cat_info["status"]) $status = "<a href=\"javascript:update_status(".$cat_id.",'off')\" class='btn btn-soft btn-xs btn-outline btn-square'><i data-lucide='eye-off' class='size-3'></i></a>";
else $status = "<a href=\"javascript:update_status(".$cat_id.",'on')\" class='btn btn-soft btn-xs btn-outline btn-square'><i data-lucide='eye' class='size-3'></i></a>";
$edit_link ="/admin/product/category-form?id=".$cat_id;
$hide_this = ($parentId > 0) ? "style='display: none;'" : '';
$show_category_name = $cat_info["title"];
if(!IS_DEFAULT_LANGUAGE && isset($cat_info["not_translated"]) && $cat_info["not_translated"]) {
$show_category_name = "<span style='color: red'>[Chưa dịch]</span> ".$cat_info["title"];
}
if($cat_info['is_parent']) {
$show_category_name = "<a href=\"javascript:;\" class='link-active' onclick=\"RowExpand.open_child('parent_".$cat_id."')\">".$show_category_name."</a>";
}
$categoryTree .= "
<tr id='row_".$cat_id."' class='parent_".$parentId." row' ". $hide_this ."
onmouseover=\"this.className='row-hover parent_".$parentId."'\" onmouseout=\"this.className='parent_".$parentId."'\">
<td>
<a class='link-active' name='cat_".$cat_id."'></a>
". $extra_space . $prefix . $stt.". ". $show_category_name . $imgUrl."
</td>
<td>
<a href='".$cat_info['request_path']."' class='link-active' title='Mở tại website' target='_blank'>Xem trang</a>
</td>
<td>".$cat_id."</td>
<td class='whitespace-nowrap'>413787</td>
<td><a class='link-active' href='/admin/product?category=".$cat_id."'>1292</a></td>
<td>
<input class='input' type=text id=order_".$cat_id." value='".$cat_info["ordering"]."' size=2 onchange=\"update_order(".$cat_id.",this.value)\" />
<span class='status-ordering-".$cat_id."'></span>
</td>
<td class='whitespace-nowrap'>
SP + Danh mục con
</td>
";
if(IS_DEFAULT_LANGUAGE) {
$categoryTree .= "
<td>
<a href='/admin/product/category-attribute?id=".$cat_id."&popup=1' class='pop-up'>Tổng</a> (".$cat_info['attribute_count'].")
</td>
<td>
<div class='list-btn flex items-center gap-3'>
<a href=\"".$edit_link."\" class='btn btn-soft btn-xs btn-square btn-outline btn-view'><i data-lucide='pencil' class='size-3'></i></a>
<a class='btn btn-soft btn-xs btn-square btn-outline btn-view' href='javascript:set_category_feature(.$cat_id.,'off')'><i data-lucide='crown' class='size-3'></i></a>
<span id=status-".$cat_id.">".$status."</span>
<span class='status-delete-".$cat_id."'><a href=\"javascript:deleteThis(".$cat_id.")\" class='btn btn-soft btn-xs btn-square btn-error btn-outline '><i data-lucide='trash-2' class='size-3'></i></a></span>
</div>
</td>
";
}else{
$categoryTree .= "
<td>
<a href=\"".$edit_link."\"><i data-lucide='pencil' class='size-3'></i></a>
</td>
";
}
$categoryTree .= "
</tr>
";
if($cat_info["is_parent"]) $categoryTree .= get_category_list($cat_id, $currentCat, $level + 1, $prefix . $stt.".", $category_collection);
}
}
return $categoryTree;
}

View File

@@ -0,0 +1,18 @@
<?php
use Hura8\Components\Product\AdminController\AProductCategoryController;
$objAProductCategoryController = new AProductCategoryController();
$id = (int) getRequest("id");
$item_info = ($id > 0) ? $objAProductCategoryController->getFullInfo($id) : null;
if(!$item_info) $item_info = $objAProductCategoryController->getEmptyInfo([]);
return [
'item_info' => $item_info,
'categoryDropBox' => $objAProductCategoryController->getDropBox( $item_info['parent_id'], 0, 1),
'update_status' => getRequest("us"),
];

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

Some files were not shown because too many files have changed in this diff Show More