diff --git a/README.md b/README.md
index 964330f..bf2abb0 100644
--- a/README.md
+++ b/README.md
@@ -2,25 +2,43 @@
Link thiết kế: Giao diện Admin
+Repo: https://repo.hurasoft.com/tieptk/admin_hura_8
+
Cài đặt hệ thống
Test và làm việc chính tại web: http://local.hura8_admin/
- - Tải phần mềm XAMPP tại https://www.apachefriends.org/download.html để chạy PHP
- - Chỉnh file hosts trong máy tính: 127.0.0.1 local.hura8_admin
- - Cài đặt httpd-vhosts.conf của XAMPP
+ - Tải phần mềm XAMPP tại https://www.apachefriends.org/download.html để chạy PHP
+ - Chỉnh file hosts trong máy tính C:\Windows\System32\drivers\etc\hosts:
+
+127.0.0.1 local.hura8_admin
+
+
+ -
+ Cài đặt ../xampp/apache/conf/extra/httpd-vhosts.conf của apache trong XAMPP
+
+ <VirtualHost *:80>
+ DocumentRoot "/thuc-muc-check-out/admin_hura_8"
+ ServerName local.hura8_admin
+ <Directory "/thuc-muc-check-out/admin_hura_8/">
+ Require all granted
+ </Directory>
+ </VirtualHost>
+
+
+ -
+ Cài đặt ../xampp/apache/conf/httpd.conf của apache trong XAMPP
+
+ # 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
+
+
-
- <VirtualHost *:80>
- DocumentRoot "/thuc-muc-check-out/admin_hura_8"
- ServerName local.hura8_admin
- <Directory "/thuc-muc-check-out/admin_hura_8/">
- Require all granted
- </Directory>
- </VirtualHost>
-
+
Cấu trúc thư mục
diff --git a/inc/Hura8/AppAdmin.php b/inc/Hura8/AppAdmin.php
index 58de2ea..a94e554 100644
--- a/inc/Hura8/AppAdmin.php
+++ b/inc/Hura8/AppAdmin.php
@@ -43,11 +43,7 @@ class AppAdmin
protected function getData() {
- $module_file = join(DIRECTORY_SEPARATOR, [
- "data",
- $this->current_route_info["module"],
- str_replace("-", "_", $this->current_route_info["view"]).".php"
- ]) ;
+ $module_file = $this->getModuleFile();
if(file_exists($module_file)) {
// print_r($this->current_route_info);
@@ -71,8 +67,21 @@ class AppAdmin
}
+ protected function getModuleFile() {
+ return join(DIRECTORY_SEPARATOR, [
+ "data",
+ $this->current_route_info["module"],
+ str_replace("-", "_", $this->current_route_info["view"]).".php"
+ ]) ;
+ }
+
+
protected function renderModule() {
+ if(!$this->current_route_info['module'] || !$this->current_route_info['view']) {
+ die("Module not exist");
+ }
+
$template_file_path = $this->tpl_path ."/". $this->current_route_info['module'];
$template_file_name = $this->current_route_info['view'].".html";
$template_file_full_path = $template_file_path."/".$template_file_name;
@@ -80,7 +89,10 @@ class AppAdmin
//check exist
if(!@file_exists( $template_file_full_path)) {
// attempt to auto create first
- if(!$this->autoCreateTplFile( $template_file_path, $template_file_name )) {
+ // todo: this MUST BE TURNED OFF IN PRODUCTION, else many files will be created unintentionally
+ $module_file = $this->getModuleFile();
+ // only create if module file exist
+ if(file_exists($module_file) && !$this->autoCreateTplFile( $template_file_path, $template_file_name )) {
die("Please manually create template file at: ". $template_file_full_path);
}
}
diff --git a/inc/Hura8/Router.php b/inc/Hura8/Router.php
index 1361840..61d07e4 100644
--- a/inc/Hura8/Router.php
+++ b/inc/Hura8/Router.php
@@ -29,7 +29,7 @@ class Router {
}
// check match pattern in $this->path_config
- foreach ($this->path_config as $_config => $_route ) {
+ /*foreach ($this->path_config as $_config => $_route ) {
if(preg_match("{^".$_config."$}", $parsed['path'], $match )) {
if(isset($_route['query']) && is_array($_route['query'])) {
@@ -43,16 +43,20 @@ class Router {
'match' => $match,
], $_route);
}
- }
+ }*/
// auto parse path base on convention: admin/module/view/view_id
$ele = explode("/", $parsed['path']);
+ $module = $ele[2] ?? 'home';
+ $view = isset($ele[3]) ? $ele[3] : getRequest('view', 'home');
+ $view_id = isset($ele[4]) ? $ele[4] : getRequest('id', 'view_id');
+
// else error
return [
- 'module' => $ele[2] ?? 'home',
- 'view' => isset($ele[3]) ? preg_replace("/[^a-z0-9_\-]/i","", $ele[3] ) : 'home',
- 'view_id' => isset($ele[4]) ? preg_replace("/[^a-z0-9_]/i","", $ele[4] ) : '',
+ 'module' => preg_replace("/[^a-z0-9_\-]/i","", $module ) ,
+ 'view' => preg_replace("/[^a-z0-9_\-]/i","", $view ) ,
+ 'view_id' => preg_replace("/[^a-z0-9_]/i","", $view_id ),
'query' => $parsed['query'],
];
}