diff --git a/README.md b/README.md index b206b48..4f49548 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,47 @@

Link thiết kế: Giao diện Admin

-

Quy định cấu trúc

+

Cài đặt hệ thống

-

Mỗi giao diện sẽ tạo 1 file. Tên giao diện đặt theo quy định: ban-hang.html, san-pham.html,....

- -

Sử dụng Tailwind để style giao diện.Tài liệu tham khảo

+

Test và làm việc chính tại web: http://local.hura8_admin/

+ +

+    <VirtualHost *:80>
+        DocumentRoot "/path/www/admin_hura_8"
+        ServerName local.hura8_admin
+        <Directory "/path/www/admin_hura_8/">
+            Require all granted
+        </Directory>
+    </VirtualHost> 
+
+ +

Cấu trúc thư mục

+ + + + +

Sử dụng Tailwind để style giao diện.

+ +

Hướng dẫn up code sử dụng git

diff --git a/_shared.php b/_shared.php new file mode 100644 index 0000000..0cf8078 --- /dev/null +++ b/_shared.php @@ -0,0 +1,8 @@ + [ + [ + 'id' => 1, + 'email' => 'uyentt@hurasoft.com ', + 'content' => ' Chỉnh sửa trang chủ website laptoptcc ', + 'time' => ' 24/11/2023 ', + ], + [ + 'id' => 2, + 'email' => 'uyentt@hurasoft.com ', + 'content' => ' Chỉnh sửa trang chủ website laptoptcc ', + 'time' => ' 24/11/2023 ', + ], + [ + 'id' => 3, + 'email' => 'uyentt@hurasoft.com ', + 'content' => ' Chỉnh sửa trang chủ website laptoptcc ', + 'time' => ' 24/11/2023 ', + ], + ], +]; diff --git a/data/product/form.php b/data/product/form.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/data/product/form.php @@ -0,0 +1 @@ + - - - - - - Admin Hura Pc - - - - - - - - - - - - - - - -
- - - - - -
-
- - - - - - -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- - - -
- - - -
- -
- - - -
- -
- - - -
-
- -
-
- - - -
- -
- - - -
- -
- - - -
-
- -
- - - -
-
- -
- -
-
-
- - - - -
- - -
- -
- - - - - - - - -
-
- - - - - - - - 0 -
- - -
- -
-
-

ducdt@hurasoft.com

- - - - - - -
- - -
-
-
- - -
- -
-
-
-
-

Đơn hàng - mới

- - - - - - -
- -

10.000.000

-
- -
-
- - - - 10% -
- -

Hôm qua

-
-
- -
-
-
-

Khách hàng - liên hệ qua website

- - - - - - -
- -

10.000.000

-
- -
-
- - - - 10% -
- -

Hôm qua

-
-
- -
-
-
-

Đơn trả - góp

- - - - - - -
- -

10.000.000

-
- -
-
- - - - 10% -
- -

Hôm qua

-
-
- -
-
-
-

Đơn hoàn - trả

- - - - - - -
- -

10.000.000

-
- -
-
- - - - 10% -
- -

Hôm qua

-
-
- -
-
-
-
32.4k
-

Doanh thu trong tuần này

-
- -
- 12% - -
-
- -
- -
-
- - - - - Users Report - - - -
-
-
- -
-
-
3.4k
- -
-

Truy cập web trong tuần này

- - - - 42.5% - -
-
- -
-
-
Lượt truy cập: -
-
1.458
-
- -
-
Người xem:
-
2.130
-
-
- -
- -
-
- - - - Leads Report - - -
-
-
- -
-

Lịch sử chỉnh - sửa

- - - Xem danh sách - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STT Người dùng Nội dung Thời gian Xem chi tiết
1 uyentt@hurasoft.com Chỉnh sửa trang chủ website laptoptcc 24/11/2023 - - Xem -
2uyentt@hurasoft.comChỉnh sửa trang chủ website laptoptcc24/11/2023Xem -
3uyentt@hurasoft.comChỉnh sửa trang chủ website laptoptcc24/11/2023Xem -
-
-
- - -
- - -
-
-

Ghi nhắc việc làm cá nhân

- -
- - - - - - - - -
-
- -
- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STT Nội dung Hết hạn Trạng thái
1 Sửa trang chủ websiteLaptoptcc 28/11/2023 - - Đang triển khai - -
2 Sửa trang chủ websiteLaptoptcc 28/11/2023 - - Quá hạn -
3 Sửa trang chủ websiteLaptoptcc 28/11/2023 - - Đã xong -
4 Sửa trang chủ websiteLaptoptcc 28/11/2023 - - Sắp hết hạn -
-
-
-
- -
-
- -
- - - - - - - - - - - - \ No newline at end of file diff --git a/inc/Hura8/AdminTemplateFilter.php b/inc/Hura8/AdminTemplateFilter.php new file mode 100644 index 0000000..8c9ee45 --- /dev/null +++ b/inc/Hura8/AdminTemplateFilter.php @@ -0,0 +1,261 @@ + '', 'value' => ] from [key1 => value1, key2=>value2, ...] + * + * @param array $key_values [key1 => value1, key2=>value2] + * + * @return array [['key' => 'key1', 'value' => value1], ['key' => 'key2', 'value' => value2]] + */ + public static function to_array(array $key_values) { + $result = []; + foreach ($key_values as $key => $value) { + $result[] = [ + 'key' => $key, + 'value' => $value, + ]; + } + + return $result; + } + + + /** + * split a s by line to create array + * + * @param string $txt + * + * @return array + */ + public static function get_line($txt) { + + if(is_array($txt)) { + return $txt; + } + + $txt = trim($txt); + if( ! $txt ) return []; + + return preg_split("/\n/", $txt); + } + + /** + * Implement strlen + * + * @param string $str + * + * @return int + */ + public static function length($str) { + return strlen(trim($str)); + } + + + /** + * Make number easier to read: 1000 -> 1.000 + * + * @param string $number + * + * @return string + */ + public static function format_number($number) { + if(!$number) return ''; + $number = floatval($number); + + $number = number_format($number, 0, ",", "."); //Vietnamese format with decimals by a coma + + return $number; + } + + public static function format_price($p_price, $currency = ''){ + if(!$p_price) return ''; + if(!$currency) $currency = (defined("DEFAULT_CURRENCY")) ? DEFAULT_CURRENCY : "vnd"; + //if(is_string($p_price)) return 0; + if($currency == 'usd') { + return number_format($p_price,2,".",","); + }else { + return number_format($p_price,0,",","."); + } + } + + public static function global_asset_url($file_name = '') + { + return GLOBAL_ASSETS_PATH . $file_name; + } + + /** + * + * Description: get the shop's full asset url for template's images/js/css + * + * //Returns the URL of a file in the "assets" folder of a theme. + // {{ 'shop.css' | asset_url : 'arg1', 'arg2' ...}} -> //cdn.shopify.com/s/files/1/0087/0462/t/394/assets/shop.css?28253 + * + * @param string $file_name + * + * @return string + */ + public static function asset_url($file_name = '') + { + if( !$file_name ) return ''; + + $file_ext = strtolower(strrchr($file_name, ".")); + + // script tags + if(in_array($file_ext, ['.js', '.css'])) return TEMPLATE_ASSET . "/script/" . $file_name; + + // default image + return TEMPLATE_ASSET . "/images/" . $file_name; + } + + + /** + * + * Description: construct a full html tag for images/js/css file + * + * @param string $file_path domain.com/static/style.css?v=3.1.1 + * + * @return string + */ + public static function script_tag($file_path) { + if( ! $file_path ) return ''; + + //check for ? + if(strpos($file_path, "?") !== false) { + $file_ext = str_replace(strrchr($file_path, "?"), "", $file_path); + $file_ext = strtolower(strrchr($file_ext, ".")); + } else { + $file_ext = strtolower(strrchr($file_path, ".")); + } + + $tag_config = [ + ".css" => "", + ".js" => "", + ".jpg" => "\"n\"/", + ".jpeg" => "\"\"/", + ".gif" => "\"\"/", + ".png" => "\"\"/", + ]; + + return (isset($tag_config[$file_ext])) ? $tag_config[$file_ext] : ''; + } + + /** + * {{ product_info.main_image | img_url: '300x300' }} => https://cdn.shopify.com/s/files/1/1183/1048/products/boat-shoes_300x300.jpeg?1459175177 + * @param string $full_path + * @param string $modifier + * $modifier: + * - must be in format: NumberxNumber or Numberx where Number must within 10 -> 9999 + * - or be one of these: small | medium | large + * @return string + */ + public static function img_url($full_path, $modifier) + { + $clean_modifier = ($modifier) ? trim($modifier) : ""; + + // verify $modifier + // must be in format: NumberxNumber or Numberx where Number must within 10 -> 9999 + if($clean_modifier + && !preg_match("/^[0-9]{2,4}x([0-9]{2,4})?$/i", $clean_modifier) + && !in_array($clean_modifier, ["small", "medium", "large"]) + ) { + $clean_modifier = ""; + } + + // return if no valid modifier + if( ! $clean_modifier ) { + return $full_path; + } + + $last_dot_position = strrpos($full_path, "."); + if( ! $last_dot_position ) return $full_path . $clean_modifier; + + return join("", [ + substr($full_path, 0, $last_dot_position), + "_", + $clean_modifier, + substr($full_path, $last_dot_position) + ]); + } + + /** + * //Returns the URL of a file in the Files page of the admin. + //{{ 'size-chart.pdf' | file_url }} -> //cdn.shopify.com/s/files/1/0087/0462/files/size-chart.pdf?28261 + * + * @param string $input + * @param string $string + * + * @return string + */ + public static function file_url($input, $string) + { + return strtoupper($input) . " = " . $string; + } + + /** + * //Returns the asset URL of an image in the Files page of the admin. file_img_url accepts an image size parameter. + //{{ 'logo.png' | file_img_url: '1024x768' }} -> //cdn.shopify.com/s/files/1/0246/0527/files/logo_1024x768.png?42 + * + * @param string $input + * @param string $string + * + * @return string + */ + public static function file_img_url($input, $string) + { + return ''; + } + + + /** + * Show all content of a variable, useful for template development + * + * @param string + * + * @return string + */ + public static function print_r($input) + { + @ob_start(); + print_r($input); + $content = ob_get_contents(); + @ob_end_clean(); + + return join("\r", ['']) ; + } + + /** + * Show all content of a variable, useful for template development + * + * @param string + * + * @return string + */ + public static function show_var($input) + { + @ob_start(); + print_r($input); + $content = ob_get_contents(); + @ob_end_clean(); + + return join("\r", ['']) ; + } +} diff --git a/inc/Hura8/AppAdmin.php b/inc/Hura8/AppAdmin.php new file mode 100644 index 0000000..2a3f22c --- /dev/null +++ b/inc/Hura8/AppAdmin.php @@ -0,0 +1,168 @@ + 'home', + "view" => 'home', + ]; + + protected $data = []; + + + public function __construct() + { + + } + + // start the app + public function start() { + $this->getRouter(); + $this->getData(); + echo $this->renderModule(); + } + + + protected function getRouter() { + $route = [ + "module" => (isset($_REQUEST['module'])) ? $_REQUEST['module'] : 'home', + "view" => (isset($_REQUEST['view'])) ? $_REQUEST['view'] : 'home', + ]; + + $this->current_route_info = $route; + } + + + protected function getData() { + $module_file = join(DIRECTORY_SEPARATOR, [ + "data", + $this->current_route_info["module"], + str_replace("-", "_", $this->current_route_info["view"]).".php" + ]) ; + + if(!file_exists($module_file)) { + // print_r($this->current_route_info); + die('Page '. $module_file .' not found!'); + } + + $data = include_once $module_file; + + $global_data = [ + + ]; + + $this->data = array( + 'global' => $global_data, + // module-specific data, just print {{ page }} to see all available data for the current page!!! + 'page' => (is_array($data)) ? $data : [], + ); + } + + + protected function renderModule() { + + $template_file_path = $this->tpl_path ."/". $this->current_route_info['module']."/".$this->current_route_info['view'].".html"; + + //check exist + if(!@file_exists( $template_file_path)) { + die("Not found : ". $template_file_path); + } + + $theme_file_path = $this->tpl_path ."/theme.html"; + if( ! @file_exists( $theme_file_path)) { + die("Theme not exist (please create): " . $theme_file_path); + } + + $theme_content = @file_get_contents( $theme_file_path ); + $module_content = @file_get_contents( $template_file_path ); + + $page_content_to_parse = preg_replace([ + "/{{(\s+)?page_content(\s+)?}}/" + ], [ + $module_content, + ] , $theme_content ); + + + return $this->parse( + $page_content_to_parse, + $template_file_path + ); + } + + /* + * 2 ways to render a html template + * 1. Use $html_to_parse, which requires no dependencies + * Example: + * Template::parse(null, 'Age = {{age}}', ['age' => 21], ''); + * + * 2. Use $template_file_path, which requires dependency $path + * Template::parse(Template::$setting_template_path, null, ['age' => 21], 'email/test'); + * */ + protected function parse($html_to_parse = null, $template_file_path = '') { + + if(!$html_to_parse && !$template_file_path) { + return 'Nothing to parse'; + } + + //output to html + Liquid::set('INCLUDE_SUFFIX', 'html'); + Liquid::set('INCLUDE_PREFIX', ''); + //Liquid::set('INCLUDE_ALLOW_EXT', true); + Liquid::set('ESCAPE_BY_DEFAULT', false); + + $enable_cache = false; // default = true, turn this on-off to disable cache while working on local mode + //$enable_cache = true; + + //catch exception and print friendly notice + try { + + $objLiquidTemplate = new LiquidTemplate( $this->tpl_path ); + $objLiquidTemplate->registerFilter( AdminTemplateFilter::class ); + if($enable_cache) { + /*$objLiquidTemplate->setCache(new File([ + 'cache_dir' => self::$cache_dir + ]));*/ + } + + if($html_to_parse) { + $objLiquidTemplate->parse($html_to_parse); + }elseif ($template_file_path) { + $objLiquidTemplate->parseFile($template_file_path); + } + + return $objLiquidTemplate->render($this->data); + + } catch (\Exception $e) { + $result = []; + do { + //printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e)); + //echo $e->getTraceAsString(); + //$code = $e->getTrace()[0]['args'][0]; + //if(is_array($code)) $code = serialize($code); + $result[] = sprintf( + " +Lỗi code trong file template html:
+- Chi tiết lỗi: %s
+- File template: %s
+- Hướng dẫn xử lý: Tách từng phần html để kiểm tra và nhấn F5 mỗi lần. Nếu không xuất hiện thông báo này nghĩa là phần đó không tạo lỗi +", + $e->getMessage(), + substr($template_file_path, strrpos($template_file_path, DIRECTORY_SEPARATOR) + 1 ), + //static::$cache_dir + ); + + } while($e = $e->getPrevious()); + + return join(" - ", $result); + } + } + +} diff --git a/inc/common.php b/inc/common.php new file mode 100644 index 0000000..56b641b --- /dev/null +++ b/inc/common.php @@ -0,0 +1,8 @@ +add("Hura8", ROOT_DIR . '/inc' ); + + return $classLoader; +} diff --git a/index.php b/index.php new file mode 100644 index 0000000..524cac6 --- /dev/null +++ b/index.php @@ -0,0 +1,15 @@ +start(); diff --git a/package/composer.json b/package/composer.json new file mode 100644 index 0000000..abce318 --- /dev/null +++ b/package/composer.json @@ -0,0 +1,8 @@ +{ + "require": { + "liquid/liquid": "1.4.32", + "ext-json": "*", + "ext-mysqli": "*", + "ext-zip": "*" + } +} diff --git a/product_list.html b/product_list.html deleted file mode 100644 index 6ac29e6..0000000 --- a/product_list.html +++ /dev/null @@ -1,770 +0,0 @@ - - - - - - - Admin Hura Pc - - - - - - - - - - - - -
- - - - - -
- - -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- - - -
- - - -
- -
- - - -
- -
- - - -
- - -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
-
- -
- -
-
-
- - - - -
- - -
- -
- - - - - - - - -
-
- - - - - - - - 0 -
- - -
- -
-
-

ducdt@hurasoft.com

- - - - - - -
- - -
-
-
- - -
-
-

Danh sách sản phẩm

-
- -
- Tìm kiếm -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STTIDẢnhSản phẩm (Tổng số: 1.742)Người dùngThông tin bán hàngThông tin khác - Đặc điểm - - Công cụ
1#2105 - - 6 ảnh - - - - - - - - Chăn hè đũi xơ đậu nành mã 32 Gấu xanh -

[Có cấu hình]

-
- Danh mục: - Màn hình Máy tính - - - - -
-
- Mã kho - MH241 - | - Hãng -

ABS

-
-

Cập nhật: 20-10-2023, 5:48 pm (49 ngày)

-

Người cập nhật : anhtt@hurasoft.com

-
-

- Xem : 0

-

- Thích : 0

-

- Mua : 0

-
-
- - Giá bán: - 300.000 vnd -
-
- - Sl tổng: - 1 -
-
-
- - Giá bán: - 300.000 vnd -
-

- Bảo hành: Ato test

-

- Khuyến mại: + Ato test

-
-
- - -
-
- - -
-
- - -
-
- - -
- Cập - nhật -
- -
- STT - -
-
-
- -
-
- -
- - - - - - - - - \ No newline at end of file diff --git a/template/home/home.html b/template/home/home.html new file mode 100644 index 0000000..3c42f93 --- /dev/null +++ b/template/home/home.html @@ -0,0 +1,897 @@ +
+ + +
+
+
+
+

Đơn hàng mới

+ + + + + + +
+ +

10.000.000

+
+ +
+
+ + + + 10% +
+ +

Hôm qua

+
+
+ +
+
+
+

Khách hàng + liên hệ qua website

+ + + + + + +
+ +

10.000.000

+
+ +
+
+ + + + 10% +
+ +

Hôm qua

+
+
+ +
+
+
+

Đơn trả + góp

+ + + + + + +
+ +

10.000.000

+
+ +
+
+ + + + 10% +
+ +

Hôm qua

+
+
+ +
+
+
+

Đơn hoàn + trả

+ + + + + + +
+ +

10.000.000

+
+ +
+
+ + + + 10% +
+ +

Hôm qua

+
+
+ +
+
+
+
32.4k
+

Doanh thu trong tuần này

+
+ +
+ 12% + +
+
+ +
+ +
+
+ + + + + Users Report + + + +
+
+
+ +
+
+
3.4k
+ +
+

Truy cập web trong tuần này

+ + + + 42.5% + +
+
+ +
+
+
Lượt truy cập: +
+
1.458
+
+ +
+
Người xem:
+
2.130
+
+
+ +
+ +
+
+ + + + Leads Report + + +
+
+
+ +
+

Lịch sử chỉnh + sửa

+ + + Xem danh sách + + + + + + + + + + + + + + + + + + + + {% for item in page.lich_su_chinh_sua %} + + + + + + + + + {% endfor %} + + +
STT Người dùng Nội dung Thời gian Xem chi tiết
{{ item.id }} {{ item.email }} {{ item.content }} {{ item.time }} + + Xem +
+
+
+ + +
+ + +
+
+

Ghi nhắc việc làm cá nhân

+ +
+ + + + + + + + +
+
+ +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
STT Nội dung Hết hạn Trạng thái
2 Sửa trang chủ websiteLaptoptcc 28/11/2023 + + Quá hạn +
3 Sửa trang chủ websiteLaptoptcc 28/11/2023 + + Đã xong +
4 Sửa trang chủ websiteLaptoptcc 28/11/2023 + + Sắp hết hạn +
+
+
+
+ +
+ + + + diff --git a/template/product/form.html b/template/product/form.html new file mode 100644 index 0000000..b1609ed --- /dev/null +++ b/template/product/form.html @@ -0,0 +1,1043 @@ + + +
+ + +
+
+ Cập nhật: Máy in mã vạch MH241 (ID: 2105)
+ +
+ +
+ +
+
+ 1. Thông tin cơ bản +
+ + +
+ + + + + +
+
+
+ + +
+ + + + + +
+
+
+ + +
+ + + + + +
+
+
+ + +
+ gram + + + + + +
+
+
+ + +
+ Quản lý thương hiệu +
+
+
+ + +
+
+ + +
+
+
+ 1. Thông tin cơ bản + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Giá bán lẻ +
+ + + / + +
+
+ (* Nếu dùng USD thì theo chuẩn quốc tế v.d. $134.05). + Tỷ giá: + 1 + + + + + + +
+
Thuế VAT + Giá bán +
+
+ + +
+
+ + +
+
+ + +
+
+
Giá nhập hàng +
+ + vnd (để tham khảo khi cần) +
+ +
Giá thị trường +
+ + vnd (để tham khảo khi cần) +
+ +
Số lượng kho hàng +
+ +
+ +
Khuyến mại riêng + +
Khuyến mại riêng + +
Tình trạng (Mới / Cũ) + +
Hiển thị +
+
+ + +
+
+ + +
+
+
+ +
+
+ +
+ Hiện tại Sản phẩm đang được đặt trong các danh mục sau : + + +

+ Bạn có thể chọn thêm danh mục khác cho Sản phẩm hoặc chỉnh lại. +

+
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ Link truy cập tại website + + https://demopc8.hurasoft.com/may-in-ma-vach-mh241 +
Tên index + +
Thay đổi link trung cập khi thay đổi tên index ? +
+ + + Có thay đổi (Tích chọn nếu bạn muốn hệ thống thay đổi link truy cập. + Cảnh báo: sẽ ảnh hưởng tới kết quả SEO) + +
+ +
Url canonical + + * để trống sẽ dùng link mặc định của hệ thống +
Meta Title + + * 0 ký tự , 0 từ +
Meta Description(nên tối đa 160 ký tự) + + 0 ký tự , 0 từ (Khuyến nghị: 160 ký tự) +
+ +
+ +
+
+ THƯ VIỆN ẢNH + Chưa có thư viện ảnh cho phần miêu tả +
+ + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ Màu sắc 5 +

mau_sac_5

+ Dùng tạo lựa chọn SP +
+
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+
+ Bổ sung giá trị: +

mỗi giá trị 1 dòng

+ + + + + + +
+ +
+ Màu sắc 5 +

mau_sac_5

+ Dùng tạo lựa chọn SP +
+
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+
+ Bổ sung giá trị: +

mỗi giá trị 1 dòng

+ + + + + + +
+ +
+ Màu sắc 5 +

mau_sac_5

+ Dùng tạo lựa chọn SP +
+
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+
+ Bổ sung giá trị: +

mỗi giá trị 1 dòng

+ + + + + + +
+ +
+ Màu sắc 5 +

mau_sac_5

+ Dùng tạo lựa chọn SP +
+
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+ + Màn hình máy tính +
+
+
+ Bổ sung giá trị: +

mỗi giá trị 1 dòng

+ + + + + + +
+ +
+ +
+ +
+
+
+ Ảnh chính + +

(Hình sản phẩm)

+ + + + + + + + +
+
+

STT

+ +
+
+

ALT

+ +
+
+
+
+ Ảnh chính + +

(Hình sản phẩm)

+ + + + + + + + +
+
+

STT

+ +
+
+

ALT

+ +
+
+
+
+ Ảnh chính + +

(Hình sản phẩm)

+ + + + + + + + +
+
+

STT

+ +
+
+

ALT

+ +
+
+
+
+
+ Thêm ảnh cho sản phẩm +

Bạn có thể: Chọn ảnh có sẵn trong kho ảnh, hoặc upload ảnh từ máy tính:

+ +

Chú ý: Bạn có thể chọn nhiều ảnh cùng 1 + lúc: + Chấp nhận các file ảnh: jpg,gif

+
+ +
+ Chú ý: +
    +
  • - Ảnh Sản phẩm kích thước lớn sẽ được tự động co lại thành các ảnh + nhỏ hơn cho những vị trí liên quan. Tùy giao + diện website của bạn mà kích thước ảnh Sản phẩm khác nhau. Click vào đây để + quy định kích thước ảnh Sản phẩm.
  • +
  • + - Chỉ dùng file ảnh đuôi .jpg và .gif. +
  • +
  • + - Cập nhật hình ảnh cho Sản phẩm ở nhiều góc cạnh, màu sắc để người dùng xem + rõ nhất. Nên cập nhật ảnh có kích thước lớn + và độ phân giải cao. +
  • +
+
+
+ +
+ Chủng loại của sản phẩm + + + + + + + Sửa thuộc tính + + +

* Chú ý: Giá bán của sản phẩm sẽ là giá của + chủng loại + được chọn. Nếu giá chủng + loại=0 thì sẽ mặc định dùng giá sản + phẩm. Cài đặt giá chung cho sản phẩm ở Tab "Cơ bản"

+
+

Cài nhanh cho tất cả chủng loại:

+
+

Giá bán:

+ +
+
+

Số lượng:

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ẢnhMã khoTênGiá bánSLLinh ngoài +
+ + Hiển thị +
+
Quản lý
+ + + + + + + + + + + + + + + + + + STT + + + + + + + + + + +
+ + + + Thêm chủng loại + + +
+ +
+ 1.Các loại phụ kiện của sản phẩm + + + + + + Chọn Sản phẩm phụ kiện + + + 2.Các danh mục + PC, Workstation + + + + + + + + + + + + + + + + + + + +
STTẢnhSản phẩmGiá hiện tạiQuản lý
1 + + + CPU Intel Xeon E5-2665 2.40 GHz / 20MB / 8 Cores 16 Threads / + Socket 2011 +
+ SKU: HN123567 + / + Số lượng: 1 +
+
+ 24.900.000 VND + +
+ + + + + + +
+
+
+
+
+
+
diff --git a/template/product/home.html b/template/product/home.html new file mode 100644 index 0000000..7529d43 --- /dev/null +++ b/template/product/home.html @@ -0,0 +1,270 @@ + + +
+
+

Danh sách sản phẩm

+
+ +
+ Tìm kiếm +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
STTIDẢnhSản phẩm (Tổng số: 1.742)Người dùngThông tin bán hàngThông tin khác + Đặc điểm + + Công cụ
1#2105 + + 6 ảnh + + + + + + + + Chăn hè đũi xơ đậu nành mã 32 Gấu xanh +

[Có cấu hình]

+
+ Danh mục: + Màn hình Máy tính + + + + +
+
+ Mã kho + MH241 + | + Hãng +

ABS

+
+

Cập nhật: 20-10-2023, 5:48 pm (49 ngày)

+

Người cập nhật : anhtt@hurasoft.com

+
+

- Xem : 0

+

- Thích : 0

+

- Mua : 0

+
+
+ - Giá bán: + 300.000 vnd +
+
+ - Sl tổng: + 1 +
+
+
+ - Giá bán: + 300.000 vnd +
+

- Bảo hành: Ato test

+

- Khuyến mại: + Ato test

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ Cập + nhật +
+ +
+ STT + +
+
+
+ +
diff --git a/template/theme.html b/template/theme.html new file mode 100644 index 0000000..8d5a37d --- /dev/null +++ b/template/theme.html @@ -0,0 +1,511 @@ + + + + + + + Admin Hura Pc + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+ + + + + + +
+ + + +
+ +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+ +
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+ +
+ + + +
+
+ +
+ +
+
+
+ + + + +
+ + +
+ +
+ + + + + + + + +
+
+ + + + + + + + 0 +
+ + +
+ +
+
+

ducdt@hurasoft.com

+ + + + + + +
+ + +
+
+
+ + + {{page_content}} + + +
+ +
+ + + + + + diff --git a/them_san_pham.html b/them_san_pham.html deleted file mode 100644 index 194933d..0000000 --- a/them_san_pham.html +++ /dev/null @@ -1,1547 +0,0 @@ - - - - - - - Admin Hura Pc - - - - - - - - - - - - - - - -
- - - - - -
- - -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- - - -
- - - -
- -
- - - -
- -
- - - -
- - -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
-
- -
- -
-
-
- - - - -
- - -
- -
- - - - - - - - -
-
- - - - - - - - 0 -
- - -
- -
-
-

ducdt@hurasoft.com

- - - - - - -
- - -
-
-
- -
- -
-
- Cập nhật: Máy in mã vạch MH241 (ID: 2105)
- -
- -
- -
-
- 1. Thông tin cơ bản -
- - -
- - - - - -
-
-
- - -
- - - - - -
-
-
- - -
- - - - - -
-
-
- - -
- gram - - - - - -
-
-
- - -
- Quản lý thương hiệu -
-
-
- - -
-
- - -
-
-
- 1. Thông tin cơ bản - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Giá bán lẻ -
- - - / - -
-
- (* Nếu dùng USD thì theo chuẩn quốc tế v.d. $134.05). - Tỷ giá: - 1 - - - - - - -
-
Thuế VAT - Giá bán -
-
- - -
-
- - -
-
- - -
-
-
Giá nhập hàng -
- - vnd (để tham khảo khi cần) -
- -
Giá thị trường -
- - vnd (để tham khảo khi cần) -
- -
Số lượng kho hàng -
- -
- -
Khuyến mại riêng - -
Khuyến mại riêng - -
Tình trạng (Mới / Cũ) - -
Hiển thị -
-
- - -
-
- - -
-
-
- -
-
- -
- Hiện tại Sản phẩm đang được đặt trong các danh mục sau : - - -

- Bạn có thể chọn thêm danh mục khác cho Sản phẩm hoặc chỉnh lại. -

-
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Link truy cập tại website - - https://demopc8.hurasoft.com/may-in-ma-vach-mh241 -
Tên index - -
Thay đổi link trung cập khi thay đổi tên index ? -
- - - Có thay đổi (Tích chọn nếu bạn muốn hệ thống thay đổi link truy cập. - Cảnh báo: sẽ ảnh hưởng tới kết quả SEO) - -
- -
Url canonical - - * để trống sẽ dùng link mặc định của hệ thống -
Meta Title - - * 0 ký tự , 0 từ -
Meta Description(nên tối đa 160 ký tự) - - 0 ký tự , 0 từ (Khuyến nghị: 160 ký tự) -
- -
- -
-
- THƯ VIỆN ẢNH - Chưa có thư viện ảnh cho phần miêu tả -
- - - -
- -
- - - - - - - - - - - - - - - - - -
- Màu sắc 5 -

mau_sac_5

- Dùng tạo lựa chọn SP -
-
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
-
- Bổ sung giá trị: -

mỗi giá trị 1 dòng

- - - - - - -
- -
- Màu sắc 5 -

mau_sac_5

- Dùng tạo lựa chọn SP -
-
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
-
- Bổ sung giá trị: -

mỗi giá trị 1 dòng

- - - - - - -
- -
- Màu sắc 5 -

mau_sac_5

- Dùng tạo lựa chọn SP -
-
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
-
- Bổ sung giá trị: -

mỗi giá trị 1 dòng

- - - - - - -
- -
- Màu sắc 5 -

mau_sac_5

- Dùng tạo lựa chọn SP -
-
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
- - Màn hình máy tính -
-
-
- Bổ sung giá trị: -

mỗi giá trị 1 dòng

- - - - - - -
- -
- -
- -
-
-
- Ảnh chính - -

(Hình sản phẩm)

- - - - - - - - -
-
-

STT

- -
-
-

ALT

- -
-
-
-
- Ảnh chính - -

(Hình sản phẩm)

- - - - - - - - -
-
-

STT

- -
-
-

ALT

- -
-
-
-
- Ảnh chính - -

(Hình sản phẩm)

- - - - - - - - -
-
-

STT

- -
-
-

ALT

- -
-
-
-
-
- Thêm ảnh cho sản phẩm -

Bạn có thể: Chọn ảnh có sẵn trong kho ảnh, hoặc upload ảnh từ máy tính:

- -

Chú ý: Bạn có thể chọn nhiều ảnh cùng 1 - lúc: - Chấp nhận các file ảnh: jpg,gif

-
- -
- Chú ý: -
    -
  • - Ảnh Sản phẩm kích thước lớn sẽ được tự động co lại thành các ảnh - nhỏ hơn cho những vị trí liên quan. Tùy giao - diện website của bạn mà kích thước ảnh Sản phẩm khác nhau. Click vào đây để - quy định kích thước ảnh Sản phẩm.
  • -
  • - - Chỉ dùng file ảnh đuôi .jpg và .gif. -
  • -
  • - - Cập nhật hình ảnh cho Sản phẩm ở nhiều góc cạnh, màu sắc để người dùng xem - rõ nhất. Nên cập nhật ảnh có kích thước lớn - và độ phân giải cao. -
  • -
-
-
- -
- Chủng loại của sản phẩm - - - - - - - Sửa thuộc tính - - -

* Chú ý: Giá bán của sản phẩm sẽ là giá của - chủng loại - được chọn. Nếu giá chủng - loại=0 thì sẽ mặc định dùng giá sản - phẩm. Cài đặt giá chung cho sản phẩm ở Tab "Cơ bản"

-
-

Cài nhanh cho tất cả chủng loại:

-
-

Giá bán:

- -
-
-

Số lượng:

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
ẢnhMã khoTênGiá bánSLLinh ngoài -
- - Hiển thị -
-
Quản lý
- - - - - - - - - - - - - - - - - - STT - - - - - - - - - - -
- - + - Thêm chủng loại - - -
- -
- 1.Các loại phụ kiện của sản phẩm - - - - - - Chọn Sản phẩm phụ kiện - - - 2.Các danh mục - PC, Workstation - - - - - - - - - - - - - - - - - - - -
STTẢnhSản phẩmGiá hiện tạiQuản lý
1 - - - CPU Intel Xeon E5-2665 2.40 GHz / 20MB / 8 Cores 16 Threads / - Socket 2011 -
- SKU: HN123567 - / - Số lượng: 1 -
-
- 24.900.000 VND - -
- - - - - - -
-
-
-
-
-
-
- -
- - -
- - - - - - - - - \ No newline at end of file