diff --git a/.gitignore b/.gitignore index 736f369b..3ee86c36 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ config.php .DS_Store .vscode/ +ui/ui/compiled ui/compiled/*.php ui/cache/*.php test.php diff --git a/init.php b/init.php index 29fa80a6..1d83c172 100644 --- a/init.php +++ b/init.php @@ -45,18 +45,20 @@ if (!file_exists($root_path . 'config.php')) { } } - if (!file_exists($root_path . File::pathFixer('system/orm.php'))) { die($root_path . "orm.php file not found"); } -if (!file_exists($root_path . File::pathFixer('system/uploads/notifications.default.json'))) { - die($root_path . File::pathFixer("system/uploads/notifications.default.json file not found")); -} - $UPLOAD_PATH = $root_path . File::pathFixer('system/uploads'); $CACHE_PATH = $root_path . File::pathFixer('system/cache'); $PAGES_PATH = $root_path . File::pathFixer('pages'); +$PLUGIN_PATH = $root_path . File::pathFixer('system/plugin'); +$PAYMENTGATEWAY_PATH = $root_path . File::pathFixer('system/paymentgateway'); +$UI_PATH = 'ui'; + +if (!file_exists($UPLOAD_PATH . File::pathFixer('/notifications.default.json'))) { + die($UPLOAD_PATH . File::pathFixer("/notifications.default.json file not found")); +} require_once $root_path . 'config.php'; require_once $root_path . File::pathFixer('system/orm.php'); @@ -74,13 +76,13 @@ if ($_app_stage != 'Live') { define('U', APP_URL . '/index.php?_route='); // notification message -if (file_exists($root_path . File::pathFixer("system/uploads/notifications.json"))) { - $_notifmsg = json_decode(file_get_contents($root_path . File::pathFixer('system/uploads/notifications.json')), true); +if (file_exists($root_path . $UPLOAD_PATH . DIRECTORY_SEPARATOR . "notifications.json")) { + $_notifmsg = json_decode(file_get_contents($root_path . $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'notifications.json'), true); } -$_notifmsg_default = json_decode(file_get_contents($root_path . File::pathFixer('system/uploads/notifications.default.json')), true); +$_notifmsg_default = json_decode(file_get_contents($root_path . $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'notifications.default.json'), true); //register all plugin -foreach (glob(File::pathFixer($root_path . File::pathFixer("system/plugin/*.php"))) as $filename) { +foreach (glob(File::pathFixer($PLUGIN_PATH . DIRECTORY_SEPARATOR . '*.php')) as $filename) { try { include $filename; } catch (Throwable $e) { diff --git a/system/autoload/Admin.php b/system/autoload/Admin.php index 11b63143..ddfa89f6 100644 --- a/system/autoload/Admin.php +++ b/system/autoload/Admin.php @@ -1,21 +1,24 @@ find_one($id); - }else{ + } else { return []; } } -} \ No newline at end of file +} diff --git a/system/autoload/User.php b/system/autoload/User.php index b06b7260..afda269d 100644 --- a/system/autoload/User.php +++ b/system/autoload/User.php @@ -10,13 +10,13 @@ class User { public static function getID(){ global $db_password; - if(isset($_SESSION['uid'])){ + if(isset($_SESSION['uid']) && !empty($_SESSION['uid'])){ return $_SESSION['uid']; }else if(isset($_COOKIE['uid'])){ // id.time.sha1 $tmp = explode('.',$_COOKIE['uid']); - if(sha1($tmp[0].$tmp[1].$db_password)==$tmp[2]){ - if($tmp[1] < 86400*30){ + if(sha1($tmp[0].'.'.$tmp[1].'.'.$db_password)==$tmp[2]){ + if(time()-$tmp[1] < 86400*30){ $_SESSION['uid'] = $tmp[0]; return $tmp[0]; } diff --git a/system/boot.php b/system/boot.php index 17050d98..9dc14843 100644 --- a/system/boot.php +++ b/system/boot.php @@ -9,11 +9,14 @@ try { require_once 'init.php'; } catch (Throwable $e) { $ui = new Smarty(); - $ui->setTemplateDir(['custom' => File::pathFixer('ui/ui_custom/'), 'default' => File::pathFixer('ui/ui/')]); + $ui->setTemplateDir([ + 'custom' => File::pathFixer($UI_PATH . '/ui_custom/'), + 'default' => File::pathFixer($UI_PATH . '/ui/') + ]); $ui->assign('_url', APP_URL . '/index.php?_route='); - $ui->setCompileDir(File::pathFixer('ui/compiled/')); - $ui->setConfigDir(File::pathFixer('ui/conf/')); - $ui->setCacheDir(File::pathFixer('ui/cache/')); + $ui->setCompileDir(File::pathFixer($UI_PATH . '/compiled/')); + $ui->setConfigDir(File::pathFixer($UI_PATH . '/conf/')); + $ui->setCacheDir(File::pathFixer($UI_PATH . '/cache/')); $ui->assign("error_title", "PHPNuxBill Crash"); if (_auth()) { $ui->assign("error_message", $e->getMessage() . '
'); @@ -24,11 +27,14 @@ try { die(); } catch (Exception $e) { $ui = new Smarty(); - $ui->setTemplateDir(['custom' => File::pathFixer('ui/ui_custom/'), 'default' => File::pathFixer('ui/ui/')]); + $ui->setTemplateDir([ + 'custom' => File::pathFixer($UI_PATH . '/ui_custom/'), + 'default' => File::pathFixer($UI_PATH . '/ui/') + ]); $ui->assign('_url', APP_URL . '/index.php?_route='); - $ui->setCompileDir(File::pathFixer('ui/compiled/')); - $ui->setConfigDir(File::pathFixer('ui/conf/')); - $ui->setCacheDir(File::pathFixer('ui/cache/')); + $ui->setCompileDir(File::pathFixer($UI_PATH . '/compiled/')); + $ui->setConfigDir(File::pathFixer($UI_PATH . '/conf/')); + $ui->setCacheDir(File::pathFixer($UI_PATH . '/cache/')); $ui->assign("error_title", "PHPNuxBill Crash"); if (_auth()) { $ui->assign("error_message", $e->getMessage() . '
'); @@ -48,24 +54,33 @@ function _notify($msg, $type = 'e') $ui = new Smarty(); $ui->assign('_kolaps', $_COOKIE['kolaps']); if (!empty($config['theme']) && $config['theme'] != 'default') { - $_theme = APP_URL . '/ui/themes/' . $config['theme']; - $ui->setTemplateDir(['custom' => File::pathFixer('ui/ui_custom/'), 'theme' => File::pathFixer('ui/themes/' . $config['theme']), 'default' => File::pathFixer('ui/ui/')]); + $_theme = APP_URL . '/' . $UI_PATH . '/themes/' . $config['theme']; + $ui->setTemplateDir([ + 'custom' => File::pathFixer($UI_PATH . '/ui_custom/'), + 'theme' => File::pathFixer($UI_PATH . '/themes/' . $config['theme']), + 'default' => File::pathFixer($UI_PATH . '/ui/') + ]); } else { - $_theme = APP_URL . '/ui/ui'; - $ui->setTemplateDir(['custom' => File::pathFixer('ui/ui_custom/'), 'default' => File::pathFixer('ui/ui/')]); + $_theme = APP_URL . '/' . $UI_PATH . '/ui'; + $ui->setTemplateDir([ + 'custom' => File::pathFixer($UI_PATH . '/ui_custom/'), + 'default' => File::pathFixer($UI_PATH . '/ui/') + ]); } $ui->assign('_theme', $_theme); -$ui->addTemplateDir(File::pathFixer('system/paymentgateway/ui/'), 'pg'); -$ui->addTemplateDir(File::pathFixer('system/plugin/ui/'), 'plugin'); -$ui->setCompileDir(File::pathFixer('ui/compiled/')); -$ui->setConfigDir(File::pathFixer('ui/conf/')); -$ui->setCacheDir(File::pathFixer('ui/cache/')); +$ui->addTemplateDir($PAYMENTGATEWAY_PATH . File::pathFixer('/ui/'), 'pg'); +$ui->addTemplateDir($PLUGIN_PATH . File::pathFixer('/ui/'), 'plugin'); +$ui->setCompileDir(File::pathFixer($UI_PATH . '/compiled/')); +$ui->setConfigDir(File::pathFixer($UI_PATH . '/conf/')); +$ui->setCacheDir(File::pathFixer($UI_PATH . '/cache/')); $ui->assign('app_url', APP_URL); $ui->assign('_domain', str_replace('www.', '', parse_url(APP_URL, PHP_URL_HOST))); $ui->assign('_url', APP_URL . '/index.php?_route='); $ui->assign('_path', __DIR__); $ui->assign('_c', $config); -$ui->assign('_L', $_L); +$ui->assign('UPLOAD_PATH', $UPLOAD_PATH); +$ui->assign('CACHE_PATH', $CACHE_PATH); +$ui->assign('PAGES_PATH', $PAGES_PATH); $ui->assign('_system_menu', 'dashboard'); function _msglog($type, $msg) @@ -93,7 +108,7 @@ if ($handler == '') { } $admin = Admin::_info(); try { - $sys_render = $root_path.File::pathFixer('system/controllers/' . $handler . '.php'); + $sys_render = $root_path . File::pathFixer('system/controllers/' . $handler . '.php'); if (file_exists($sys_render)) { $menus = array(); // "name" => $name, @@ -103,7 +118,7 @@ try { $ui->assign('_system_menu', $routes[0]); foreach ($menu_registered as $menu) { if ($menu['admin'] && _admin(false)) { - if(count($menu['auth'])==0 || in_array($admin['user_type'], $menu['auth'])){ + if (count($menu['auth']) == 0 || in_array($admin['user_type'], $menu['auth'])) { $menus[$menu['position']] .= ''; if (!empty($menu['icon'])) { $menus[$menu['position']] .= ''; diff --git a/system/controllers/accounts.php b/system/controllers/accounts.php index f9e4767c..ca467419 100644 --- a/system/controllers/accounts.php +++ b/system/controllers/accounts.php @@ -138,7 +138,7 @@ switch ($action) { case 'phone-update-otp': $phone = _post('phone'); $username = $user['username']; - $otpPath = 'system/cache/sms/'; + $otpPath = $CACHE_PATH . '/sms/'; // Validate the phone number format if (!preg_match('/^[0-9]{10,}$/', $phone)) { @@ -178,7 +178,7 @@ switch ($action) { Message::sendSMS($phone, $config['CompanyName'] . "\n Your Verification code is: $otp"); Message::sendWhatsapp($phone, $config['CompanyName'] . "\n Your Verification code is: $otp"); } - //redirect after sending OTP + //redirect after sending OTP r2(U . 'accounts/phone-update', 'e', Lang::T('Verification code has been sent to your phone')); } } @@ -190,7 +190,7 @@ switch ($action) { $phone = _post('phone'); $otp_code = _post('otp'); $username = $user['username']; - $otpPath = 'system/cache/sms/'; + $otpPath = $CACHE_PATH . '/sms/'; // Validate the phone number format if (!preg_match('/^[0-9]{10,}$/', $phone)) { diff --git a/system/controllers/callback.php b/system/controllers/callback.php index b711bde3..352f2eb9 100644 --- a/system/controllers/callback.php +++ b/system/controllers/callback.php @@ -9,14 +9,14 @@ $action = $routes['1']; -if(file_exists('system/paymentgateway/'.$action.'.php')){ - include 'system/paymentgateway/'.$action.'.php'; - if(function_exists($action.'_payment_notification')){ +if (file_exists($PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $action . '.php')) { + include $PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $action . '.php'; + if (function_exists($action . '_payment_notification')) { run_hook('callback_payment_notification'); #HOOK - call_user_func($action.'_payment_notification'); + call_user_func($action . '_payment_notification'); die(); } } header('HTTP/1.1 404 Not Found'); -echo 'Not Found'; \ No newline at end of file +echo 'Not Found'; diff --git a/system/controllers/codecanyon.php b/system/controllers/codecanyon.php index 95d13c9e..171c5d62 100644 --- a/system/controllers/codecanyon.php +++ b/system/controllers/codecanyon.php @@ -1,4 +1,5 @@ assign('_admin', $admin); -$cache = File::pathFixer('system/cache/codecanyon.json'); +$cache = File::pathFixer($CACHE_PATH . '/codecanyon.json'); if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } if (empty($config['envato_token'])) { r2(U . 'settings/app', 'w', 'Envato Personal Access Token is not set'); @@ -24,14 +25,14 @@ if (empty($config['envato_token'])) { switch ($action) { case 'install': - if (!is_writeable(File::pathFixer('system/cache/'))) { + if (!is_writeable(File::pathFixer($CACHE_PATH . '/'))) { r2(U . "codecanyon", 'e', 'Folder system/cache/ is not writable'); } - if (!is_writeable(File::pathFixer('system/plugin/'))) { - r2(U . "codecanyon", 'e', 'Folder system/plugin/ is not writable'); + if (!is_writeable($PLUGIN_PATH)) { + r2(U . "codecanyon", 'e', 'Folder plugin/ is not writable'); } - if (!is_writeable(File::pathFixer('system/paymentgateway/'))) { - r2(U . "codecanyon", 'e', 'Folder system/paymentgateway/ is not writable'); + if (!is_writeable($PAYMENTGATEWAY_PATH)) { + r2(U . "codecanyon", 'e', 'Folder paymentgateway/ is not writable'); } set_time_limit(-1); $item_id = $routes['2']; @@ -41,7 +42,7 @@ switch ($action) { if (!isset($json['download_url'])) { r2(U . 'codecanyon', 'e', 'Failed to get download url. ' . $json['description']); } - $file = File::pathFixer('system/cache/codecanyon/'); + $file = File::pathFixer($CACHE_PATH . '/codecanyon/'); if (!file_exists($file)) { mkdir($file); } @@ -61,16 +62,16 @@ switch ($action) { curl_close($ch); fclose($fp); //extract - $target = File::pathFixer('system/cache/codecanyon/' . $item_id . '/'); + $target = File::pathFixer($CACHE_PATH . '/codecanyon/' . $item_id . '/'); $zip = new ZipArchive(); $zip->open($file); $zip->extractTo($target); $zip->close(); //moving if (file_exists($target . 'plugin')) { - File::copyFolder($target . 'plugin', File::pathFixer('system/plugin/')); + File::copyFolder($target . 'plugin', $PLUGIN_PATH . DIRECTORY_SEPARATOR); } else if (file_exists($target . 'paymentgateway')) { - File::copyFolder($target . 'paymentgateway', File::pathFixer('system/paymentgateway/')); + File::copyFolder($target . 'paymentgateway', $PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR); } else if (file_exists($target . 'theme')) { File::copyFolder($target . 'theme', File::pathFixer('ui/themes/')); } diff --git a/system/controllers/dashboard.php b/system/controllers/dashboard.php index 5df4557d..7ed57325 100644 --- a/system/controllers/dashboard.php +++ b/system/controllers/dashboard.php @@ -47,7 +47,7 @@ if (empty($c_all)) { } $ui->assign('c_all', $c_all); -if($config['hide_uet'] != 'yes'){ +if ($config['hide_uet'] != 'yes') { //user expire $paginator = Paginator::build(ORM::for_table('tbl_user_recharges')); $expire = ORM::for_table('tbl_user_recharges') @@ -77,14 +77,14 @@ $log = ORM::for_table('tbl_logs')->count(); $ui->assign('log', $log); -if($config['hide_vs'] != 'yes'){ - $cacheStocksfile = File::pathFixer('system/cache/VoucherStocks.temp'); - $cachePlanfile = File::pathFixer('system/cache/VoucherPlans.temp'); +if ($config['hide_vs'] != 'yes') { + $cacheStocksfile = $CACHE_PATH . File::pathFixer('/VoucherStocks.temp'); + $cachePlanfile = $CACHE_PATH . File::pathFixer('/VoucherPlans.temp'); //Cache for 5 minutes - if(file_exists($cacheStocksfile) && time()- filemtime($cacheStocksfile) < 600){ + if (file_exists($cacheStocksfile) && time() - filemtime($cacheStocksfile) < 600) { $stocks = json_decode(file_get_contents($cacheStocksfile), true); $plans = json_decode(file_get_contents($cachePlanfile), true); - }else{ + } else { // Count stock $tmp = $v = ORM::for_table('tbl_plans')->select('id')->select('name_plan')->find_many(); $plans = array(); @@ -111,11 +111,11 @@ if($config['hide_vs'] != 'yes'){ } } -$cacheMRfile = File::pathFixer('system/cache/monthlyRegistered.temp'); +$cacheMRfile = File::pathFixer('/monthlyRegistered.temp'); //Cache for 1 hour -if(file_exists($cacheMRfile) && time()- filemtime($cacheMRfile) < 3600){ +if (file_exists($cacheMRfile) && time() - filemtime($cacheMRfile) < 3600) { $monthlyRegistered = json_decode(file_get_contents($cacheMRfile), true); -}else{ +} else { //Monthly Registered Customers $result = ORM::for_table('tbl_customers') ->select_expr('MONTH(created_at)', 'month') @@ -134,11 +134,11 @@ if(file_exists($cacheMRfile) && time()- filemtime($cacheMRfile) < 3600){ file_put_contents($cacheMRfile, json_encode($monthlyRegistered)); } -$cacheMSfile = File::pathFixer('system/cache/monthlySales.temp'); +$cacheMSfile = $CACHE_PATH . File::pathFixer('/monthlySales.temp'); //Cache for 12 hours -if(file_exists($cacheMSfile) && time()- filemtime($cacheMSfile) < 43200){ +if (file_exists($cacheMSfile) && time() - filemtime($cacheMSfile) < 43200) { $monthlySales = json_decode(file_get_contents($cacheMSfile), true); -}else{ +} else { // Query to retrieve monthly data $results = ORM::for_table('tbl_transactions') ->select_expr('MONTH(recharged_on)', 'month') diff --git a/system/controllers/export.php b/system/controllers/export.php index 35b04842..3fff53fc 100644 --- a/system/controllers/export.php +++ b/system/controllers/export.php @@ -62,10 +62,10 @@ switch ($action) { $title = ' Reports [' . $mdate . ']'; $title = str_replace('-', ' ', $title); - if(file_exists('system/uploads/logo.png')){ - $logo = 'system/uploads/logo.png'; - }else{ - $logo = 'system/uploads/logo.default.png'; + if (file_exists($UPLOAD_PATH . '/logo.png')) { + $logo = $UPLOAD_PATH . '/logo.png'; + } else { + $logo = $UPLOAD_PATH . '/logo.default.png'; } if ($x) { @@ -76,7 +76,7 @@ switch ($action) { ' . $config['address'] . '
' . Lang::T('Phone Number') . ': ' . $config['phone'] . '
- + @@ -234,10 +234,10 @@ EOF; $title = ' Reports [' . $mdate . ']'; $title = str_replace('-', ' ', $title); - if(file_exists('system/uploads/logo.png')){ - $logo = 'system/uploads/logo.png'; - }else{ - $logo = 'system/uploads/logo.default.png'; + if (file_exists($UPLOAD_PATH . '/logo.png')) { + $logo = $UPLOAD_PATH . '/logo.png'; + } else { + $logo = $UPLOAD_PATH . '/logo.default.png'; } if ($x) { @@ -248,7 +248,7 @@ EOF; ' . $config['address'] . '
' . Lang::T('Phone Number') . ': ' . $config['phone'] . '
- +
diff --git a/system/controllers/order.php b/system/controllers/order.php index f71273ae..75304c8b 100644 --- a/system/controllers/order.php +++ b/system/controllers/order.php @@ -19,7 +19,7 @@ switch ($action) { break; case 'history': $ui->assign('_system_menu', 'history'); - $paginator = Paginator::build(ORM::for_table('tbl_payment_gateway'),['username'=>$user['username']]); + $paginator = Paginator::build(ORM::for_table('tbl_payment_gateway'), ['username' => $user['username']]); $d = ORM::for_table('tbl_payment_gateway') ->where('username', $user['username']) ->order_by_desc('id') @@ -31,51 +31,51 @@ switch ($action) { run_hook('customer_view_order_history'); #HOOK $ui->display('user-orderHistory.tpl'); break; - case 'balance': - if (strpos($user['email'], '@') === false) { - r2(U . 'accounts/profile', 'e', Lang::T("Please enter your email address")); - } - $ui->assign('_title', 'Top Up'); - $ui->assign('_system_menu', 'balance'); - $plans_balance = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Balance')->where('allow_purchase', 'yes')->find_many(); - $ui->assign('plans_balance', $plans_balance); - $ui->display('user-orderBalance.tpl'); - break; - case 'package': - if (strpos($user['email'], '@') === false) { - r2(U . 'accounts/profile', 'e', Lang::T("Please enter your email address")); - } - $ui->assign('_title', 'Order Plan'); - $ui->assign('_system_menu', 'package'); - if (!empty($_SESSION['nux-router'])) { - if ($_SESSION['nux-router'] == 'radius') { - $radius_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 1)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); - $radius_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 1)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); - } else { - $routers = ORM::for_table('tbl_routers')->where('id', $_SESSION['nux-router'])->find_many(); - $rs = []; - foreach ($routers as $r) { - $rs[] = $r['name']; - } - $plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where_in('routers', $rs)->where('is_radius', 0)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); - $plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where_in('routers', $rs)->where('is_radius', 0)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); - } - } else { + case 'balance': + if (strpos($user['email'], '@') === false) { + r2(U . 'accounts/profile', 'e', Lang::T("Please enter your email address")); + } + $ui->assign('_title', 'Top Up'); + $ui->assign('_system_menu', 'balance'); + $plans_balance = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Balance')->where('allow_purchase', 'yes')->find_many(); + $ui->assign('plans_balance', $plans_balance); + $ui->display('user-orderBalance.tpl'); + break; + case 'package': + if (strpos($user['email'], '@') === false) { + r2(U . 'accounts/profile', 'e', Lang::T("Please enter your email address")); + } + $ui->assign('_title', 'Order Plan'); + $ui->assign('_system_menu', 'package'); + if (!empty($_SESSION['nux-router'])) { + if ($_SESSION['nux-router'] == 'radius') { $radius_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 1)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); $radius_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 1)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); - - $routers = ORM::for_table('tbl_routers')->find_many(); - $plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 0)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); - $plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 0)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); + } else { + $routers = ORM::for_table('tbl_routers')->where('id', $_SESSION['nux-router'])->find_many(); + $rs = []; + foreach ($routers as $r) { + $rs[] = $r['name']; + } + $plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where_in('routers', $rs)->where('is_radius', 0)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); + $plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where_in('routers', $rs)->where('is_radius', 0)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); } - $ui->assign('routers', $routers); - $ui->assign('radius_pppoe', $radius_pppoe); - $ui->assign('radius_hotspot', $radius_hotspot); - $ui->assign('plans_pppoe', $plans_pppoe); - $ui->assign('plans_hotspot', $plans_hotspot); - run_hook('customer_view_order_plan'); #HOOK - $ui->display('user-orderPlan.tpl'); - break; + } else { + $radius_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 1)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); + $radius_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 1)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); + + $routers = ORM::for_table('tbl_routers')->find_many(); + $plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 0)->where('type', 'PPPOE')->where('allow_purchase', 'yes')->find_many(); + $plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('is_radius', 0)->where('type', 'Hotspot')->where('allow_purchase', 'yes')->find_many(); + } + $ui->assign('routers', $routers); + $ui->assign('radius_pppoe', $radius_pppoe); + $ui->assign('radius_hotspot', $radius_hotspot); + $ui->assign('plans_pppoe', $plans_pppoe); + $ui->assign('plans_hotspot', $plans_hotspot); + run_hook('customer_view_order_plan'); #HOOK + $ui->display('user-orderPlan.tpl'); + break; case 'unpaid': $d = ORM::for_table('tbl_payment_gateway') ->where('username', $user['username']) @@ -108,11 +108,11 @@ switch ($action) { r2(U . "order/buy/" . (($trx['routers_id'] == 0) ? $trx['routers'] : $trx['routers_id']) . '/' . $trx['plan_id'], 'w', Lang::T("Checking payment")); } if ($routes['3'] == 'check') { - if (!file_exists('system/paymentgateway/' . $trx['gateway'] . '.php')) { + if (!file_exists($PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $trx['gateway'] . '.php')) { r2(U . 'order/view/' . $trxid, 'e', Lang::T("No Payment Gateway Available")); } run_hook('customer_check_payment_status'); #HOOK - include 'system/paymentgateway/' . $trx['gateway'] . '.php'; + include $PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $trx['gateway'] . '.php'; call_user_func($trx['gateway'] . '_validate_config'); call_user_func($config['payment_gateway'] . '_get_status', $trx, $user); } else if ($routes['3'] == 'cancel') { @@ -149,10 +149,10 @@ switch ($action) { if (empty($plan)) { r2(U . "order/package", 'e', Lang::T("Plan Not found")); } - if(!$plan['enabled']){ + if (!$plan['enabled']) { r2(U . "home", 'e', 'Plan is not exists'); } - if($plan['allow_purchase'] != 'yes'){ + if ($plan['allow_purchase'] != 'yes') { r2(U . "home", 'e', 'Cannot recharge this plan'); } if ($routes['2'] == 'radius') { @@ -185,10 +185,10 @@ switch ($action) { if (empty($plan)) { r2(U . "order/package", 'e', Lang::T("Plan Not found")); } - if(!$plan['enabled']){ + if (!$plan['enabled']) { r2(U . "home", 'e', 'Plan is not exists'); } - if($plan['allow_purchase'] != 'yes'){ + if ($plan['allow_purchase'] != 'yes') { r2(U . "home", 'e', 'Cannot recharge this plan'); } if ($routes['2'] == 'radius') { @@ -273,11 +273,11 @@ switch ($action) { if ($config['payment_gateway'] == 'none') { r2(U . 'home', 'e', Lang::T("No Payment Gateway Available")); } - if (!file_exists('system/paymentgateway/' . $config['payment_gateway'] . '.php')) { + if (!file_exists($PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $config['payment_gateway'] . '.php')) { r2(U . 'home', 'e', Lang::T("No Payment Gateway Available")); } run_hook('customer_buy_plan'); #HOOK - include 'system/paymentgateway/' . $config['payment_gateway'] . '.php'; + include $PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $config['payment_gateway'] . '.php'; call_user_func($config['payment_gateway'] . '_validate_config'); if ($routes['2'] == 'radius') { diff --git a/system/controllers/paymentgateway.php b/system/controllers/paymentgateway.php index 290f8041..0fed9f2e 100644 --- a/system/controllers/paymentgateway.php +++ b/system/controllers/paymentgateway.php @@ -1,4 +1,5 @@ assign('_system_menu', 'paymentgateway'); $action = alphanumeric($routes['1']); $ui->assign('_admin', $admin); -if(file_exists('system/paymentgateway/'.$action.'.php')){ - include 'system/paymentgateway/'.$action.'.php'; +if (file_exists($PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $action . '.php')) { + include $PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR . $action . '.php'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { - if(function_exists($action.'_save_config')){ - call_user_func($action.'_save_config'); - }else{ + if (function_exists($action . '_save_config')) { + call_user_func($action . '_save_config'); + } else { $ui->display('a404.tpl'); } - }else{ - if(function_exists($action.'_show_config')){ - call_user_func($action.'_show_config'); - }else{ + } else { + if (function_exists($action . '_show_config')) { + call_user_func($action . '_show_config'); + } else { $ui->display('a404.tpl'); } } -}else{ - if(!empty($action)){ +} else { + if (!empty($action)) { r2(U . 'paymentgateway', 'w', Lang::T('Payment Gateway Not Found')); - }else{ - $files = scandir('system/paymentgateway/'); - foreach($files as $file){ - if(pathinfo($file, PATHINFO_EXTENSION)=='php'){ - $pgs[] = str_replace('.php','',$file); + } else { + $files = scandir($PAYMENTGATEWAY_PATH); + foreach ($files as $file) { + if (pathinfo($file, PATHINFO_EXTENSION) == 'php') { + $pgs[] = str_replace('.php', '', $file); } } - if(isset($_POST['payment_gateway'])){ + if (isset($_POST['payment_gateway'])) { $payment_gateway = _post('payment_gateway'); $d = ORM::for_table('tbl_appconfig')->where('setting', 'payment_gateway')->find_one(); - if($d){ + if ($d) { $d->value = $payment_gateway; $d->save(); - }else{ + } else { $d = ORM::for_table('tbl_appconfig')->create(); $d->setting = 'payment_gateway'; $d->value = $payment_gateway; @@ -53,4 +54,4 @@ if(file_exists('system/paymentgateway/'.$action.'.php')){ $ui->assign('pgs', $pgs); $ui->display('paymentgateway.tpl'); } -} \ No newline at end of file +} diff --git a/system/controllers/pluginmanager.php b/system/controllers/pluginmanager.php index 5225d4ff..42f560a1 100644 --- a/system/controllers/pluginmanager.php +++ b/system/controllers/pluginmanager.php @@ -1,4 +1,5 @@ assign('_admin', $admin); if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } -$cache = File::pathFixer('system/cache/plugin_repository.json'); +$cache = $CACHE_PATH . File::pathFixer('/plugin_repository.json'); if (file_exists($cache) && time() - filemtime($cache) < (24 * 60 * 60)) { $txt = file_get_contents($cache); $json = json_decode($txt, true); - if(empty($json['plugins']) && empty($json['payment_gateway'])){ + if (empty($json['plugins']) && empty($json['payment_gateway'])) { unlink($cache); r2(U . 'dashboard', 'd', $txt); } @@ -35,22 +36,22 @@ if (file_exists($cache) && time() - filemtime($cache) < (24 * 60 * 60)) { switch ($action) { case 'install': - if(!is_writeable(File::pathFixer('system/cache/'))){ - r2(U . "pluginmanager", 'e', 'Folder system/cache/ is not writable'); + if (!is_writeable($CACHE_PATH)) { + r2(U . "pluginmanager", 'e', 'Folder cache/ is not writable'); } - if(!is_writeable(File::pathFixer('system/plugin/'))){ - r2(U . "pluginmanager", 'e', 'Folder system/plugin/ is not writable'); + if (!is_writeable($PLUGIN_PATH)) { + r2(U . "pluginmanager", 'e', 'Folder plugin/ is not writable'); } set_time_limit(-1); $tipe = $routes['2']; $plugin = $routes['3']; - $file = File::pathFixer('system/cache/') . $plugin . '.zip'; + $file = $CACHE_PATH . File::pathFixer('/') . $plugin . '.zip'; if (file_exists($file)) unlink($file); if ($tipe == 'plugin') { foreach ($json['plugins'] as $plg) { if ($plg['id'] == $plugin) { $fp = fopen($file, 'w+'); - $ch = curl_init($plg['github'].'/archive/refs/heads/master.zip'); + $ch = curl_init($plg['github'] . '/archive/refs/heads/master.zip'); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_TIMEOUT, 15); @@ -63,19 +64,19 @@ switch ($action) { $zip = new ZipArchive(); $zip->open($file); - $zip->extractTo(File::pathFixer('system/cache/')); + $zip->extractTo($CACHE_PATH); $zip->close(); - $folder = File::pathFixer('system/cache/' . $plugin.'-main/'); - if(!file_exists($folder)){ - $folder = File::pathFixer('system/cache/' . $plugin.'-master/'); + $folder = $CACHE_PATH . File::pathFixer('/' . $plugin . '-main/'); + if (!file_exists($folder)) { + $folder = $CACHE_PATH . File::pathFixer('/' . $plugin . '-master/'); } - if(!file_exists($folder)){ + if (!file_exists($folder)) { r2(U . "pluginmanager", 'e', 'Extracted Folder is unknown'); } - File::copyFolder($folder, File::pathFixer('system/plugin/'), ['README.md','LICENSE']); + File::copyFolder($folder, $PLUGIN_PATH . DIRECTORY_SEPARATOR, ['README.md', 'LICENSE']); File::deleteFolder($folder); unlink($file); - r2(U . "pluginmanager", 's', 'Plugin '.$plugin.' has been installed'); + r2(U . "pluginmanager", 's', 'Plugin ' . $plugin . ' has been installed'); break; } } @@ -84,7 +85,7 @@ switch ($action) { foreach ($json['payment_gateway'] as $plg) { if ($plg['id'] == $plugin) { $fp = fopen($file, 'w+'); - $ch = curl_init($plg['github'].'/archive/refs/heads/master.zip'); + $ch = curl_init($plg['github'] . '/archive/refs/heads/master.zip'); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_TIMEOUT, 15); @@ -97,19 +98,19 @@ switch ($action) { $zip = new ZipArchive(); $zip->open($file); - $zip->extractTo(File::pathFixer('system/cache/')); + $zip->extractTo($CACHE_PATH); $zip->close(); - $folder = File::pathFixer('system/cache/' . $plugin.'-main/'); - if(!file_exists($folder)){ - $folder = File::pathFixer('system/cache/' . $plugin.'-master/'); + $folder = $CACHE_PATH . File::pathFixer('/' . $plugin . '-main/'); + if (!file_exists($folder)) { + $folder = $CACHE_PATH . File::pathFixer('/' . $plugin . '-master/'); } - if(!file_exists($folder)){ + if (!file_exists($folder)) { r2(U . "pluginmanager", 'e', 'Extracted Folder is unknown'); } - File::copyFolder($folder, File::pathFixer('system/paymentgateway/'), ['README.md','LICENSE']); + File::copyFolder($folder, $PAYMENTGATEWAY_PATH . DIRECTORY_SEPARATOR, ['README.md', 'LICENSE']); File::deleteFolder($folder); unlink($file); - r2(U . "paymentgateway", 's', 'Payment Gateway '.$plugin.' has been installed'); + r2(U . "paymentgateway", 's', 'Payment Gateway ' . $plugin . ' has been installed'); break; } } diff --git a/system/controllers/register.php b/system/controllers/register.php index ca19c353..9ab440a0 100644 --- a/system/controllers/register.php +++ b/system/controllers/register.php @@ -1,4 +1,5 @@ '; } - if(!empty($config['sms_url'])){ - $otpPath .= sha1($username.$db_password).".txt"; + if (!empty($config['sms_url'])) { + $otpPath .= sha1($username . $db_password) . ".txt"; run_hook('validate_otp'); #HOOK //expired 10 minutes - if(file_exists($otpPath) && time()-filemtime($otpPath)>1200){ + if (file_exists($otpPath) && time() - filemtime($otpPath) > 1200) { unlink($otpPath); r2(U . 'register', 's', 'Verification code expired'); - }else if(file_exists($otpPath)){ + } else if (file_exists($otpPath)) { $code = file_get_contents($otpPath); - if($code!=$otp_code){ + if ($code != $otp_code) { $ui->assign('username', $username); $ui->assign('fullname', $fullname); $ui->assign('address', $address); @@ -63,10 +64,10 @@ switch ($do) { $ui->assign('notify_t', 'd'); $ui->display('register-otp.tpl'); exit(); - }else{ + } else { unlink($otpPath); } - }else{ + } else { r2(U . 'register', 's', 'No Verification code'); } } @@ -77,7 +78,7 @@ switch ($do) { if ($msg == '') { run_hook('register_user'); #HOOK $d = ORM::for_table('tbl_customers')->create(); - $d->username = alphanumeric($username,"+_."); + $d->username = alphanumeric($username, "+_."); $d->password = $password; $d->fullname = $fullname; $d->address = $address; @@ -110,38 +111,38 @@ switch ($do) { break; default: - if(!empty($config['sms_url'])){ + if (!empty($config['sms_url'])) { $username = _post('username'); - if(!empty($username)){ + if (!empty($username)) { $d = ORM::for_table('tbl_customers')->where('username', $username)->find_one(); if ($d) { r2(U . 'register', 's', Lang::T('Account already axist')); } - if(!file_exists($otpPath)){ + if (!file_exists($otpPath)) { mkdir($otpPath); - touch($otpPath.'index.html'); + touch($otpPath . 'index.html'); } - $otpPath .= sha1($username.$db_password).".txt"; + $otpPath .= sha1($username . $db_password) . ".txt"; //expired 10 minutes - if(file_exists($otpPath) && time()-filemtime($otpPath)<1200){ + if (file_exists($otpPath) && time() - filemtime($otpPath) < 1200) { $ui->assign('username', $username); - $ui->assign('notify', 'Please wait '.(1200-(time()-filemtime($otpPath))).' seconds before sending another SMS'); + $ui->assign('notify', 'Please wait ' . (1200 - (time() - filemtime($otpPath))) . ' seconds before sending another SMS'); $ui->assign('notify_t', 'd'); $ui->display('register-otp.tpl'); - }else{ - $otp = rand(100000,999999); + } else { + $otp = rand(100000, 999999); file_put_contents($otpPath, $otp); - Message::sendSMS($username,$config['CompanyName']."\nYour Verification code are: $otp"); + Message::sendSMS($username, $config['CompanyName'] . "\nYour Verification code are: $otp"); $ui->assign('username', $username); $ui->assign('notify', 'Verification code has been sent to your phone'); $ui->assign('notify_t', 's'); $ui->display('register-otp.tpl'); } - }else{ + } else { run_hook('view_otp_register'); #HOOK $ui->display('register-rotp.tpl'); } - }else{ + } else { $ui->assign('username', ""); $ui->assign('fullname', ""); $ui->assign('address', ""); diff --git a/system/controllers/settings.php b/system/controllers/settings.php index 64d64bfc..13804c1e 100644 --- a/system/controllers/settings.php +++ b/system/controllers/settings.php @@ -14,7 +14,7 @@ $ui->assign('_admin', $admin); switch ($action) { case 'app': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } if (!empty(_get('testWa'))) { @@ -30,10 +30,10 @@ switch ($action) { r2(U . "settings/app", 's', 'Test Telegram has been send
Result: ' . $result); } - if (file_exists('system/uploads/logo.png')) { - $logo = 'system/uploads/logo.png?' . time(); + if (file_exists($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'logo.png')) { + $logo = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'logo.png?' . time(); } else { - $logo = 'system/uploads/logo.default.png'; + $logo = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'logo.default.png'; } $ui->assign('logo', $logo); if ($_c['radius_enable'] && empty($_c['radius_client'])) { @@ -84,7 +84,7 @@ switch ($action) { case 'app-post': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $company = _post('CompanyName'); run_hook('save_settings'); #HOOK @@ -92,8 +92,8 @@ switch ($action) { if (!empty($_FILES['logo']['name'])) { if (function_exists('imagecreatetruecolor')) { - if (file_exists('system/uploads/logo.png')) unlink('system/uploads/logo.png'); - File::resizeCropImage($_FILES['logo']['tmp_name'], 'system/uploads/logo.png', 1078, 200, 100); + if (file_exists($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'logo.png')) unlink($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'logo.png'); + File::resizeCropImage($_FILES['logo']['tmp_name'], $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'logo.png', 1078, 200, 100); if (file_exists($_FILES['logo']['tmp_name'])) unlink($_FILES['logo']['tmp_name']); } else { r2(U . 'settings/app', 'e', 'PHP GD is not installed'); @@ -153,7 +153,7 @@ switch ($action) { case 'localisation': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $folders = []; $files = scandir('system/lan/'); @@ -180,7 +180,7 @@ switch ($action) { case 'localisation-post': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $tzone = _post('tzone'); $date_format = _post('date_format'); @@ -270,7 +270,7 @@ switch ($action) { case 'users': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $search = _req('search'); if ($search != '') { @@ -360,7 +360,7 @@ switch ($action) { case 'users-add': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $ui->assign('_title', Lang::T('Add User')); $ui->assign('agents', ORM::for_table('tbl_users')->where('user_type', 'Agent')->find_many()); @@ -392,7 +392,7 @@ switch ($action) { if ($isApi) { unset($d['password']); $agent = $ui->get('agent'); - if($agent) unset($agent['password']); + if ($agent) unset($agent['password']); showResult(true, $action, [ 'admin' => $d, 'agent' => $agent @@ -407,7 +407,7 @@ switch ($action) { break; case 'users-edit': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $ui->assign('_title', Lang::T('Edit User')); $id = $routes['2']; @@ -445,7 +445,7 @@ switch ($action) { case 'users-delete': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $id = $routes['2']; @@ -464,7 +464,7 @@ switch ($action) { case 'users-post': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $username = _post('username'); $fullname = _post('fullname'); @@ -602,7 +602,7 @@ switch ($action) { $d->city = $city; $d->subdistrict = $subdistrict; $d->ward = $ward; - if(isset($_POST['status'])){ + if (isset($_POST['status'])) { $d->status = $status; } @@ -665,27 +665,27 @@ switch ($action) { case 'notifications': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } run_hook('view_notifications'); #HOOK - if (file_exists("system/uploads/notifications.json")) { - $ui->assign('_json', json_decode(file_get_contents('system/uploads/notifications.json'), true)); + if (file_exists($UPLOAD_PATH . DIRECTORY_SEPARATOR . "notifications.json")) { + $ui->assign('_json', json_decode(file_get_contents($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'notifications.json'), true)); } else { - $ui->assign('_json', json_decode(file_get_contents('system/uploads/notifications.default.json'), true)); + $ui->assign('_json', json_decode(file_get_contents($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'notifications.default.json'), true)); } - $ui->assign('_default', json_decode(file_get_contents('system/uploads/notifications.default.json'), true)); + $ui->assign('_default', json_decode(file_get_contents($UPLOAD_PATH . DIRECTORY_SEPARATOR . 'notifications.default.json'), true)); $ui->display('app-notifications.tpl'); break; case 'notifications-post': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } - file_put_contents("system/uploads/notifications.json", json_encode($_POST)); + file_put_contents($UPLOAD_PATH . "/notifications.json", json_encode($_POST)); r2(U . 'settings/notifications', 's', Lang::T('Settings Saved Successfully')); break; case 'dbstatus': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $dbc = new mysqli($db_host, $db_user, $db_password, $db_name); @@ -703,7 +703,7 @@ switch ($action) { case 'dbbackup': if (!in_array($admin['user_type'], ['SuperAdmin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } $tables = $_POST['tables']; set_time_limit(-1); @@ -723,7 +723,7 @@ switch ($action) { break; case 'dbrestore': if (!in_array($admin['user_type'], ['SuperAdmin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } if (file_exists($_FILES['json']['tmp_name'])) { $suc = 0; @@ -753,7 +753,7 @@ switch ($action) { break; case 'language': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { - _alert(Lang::T('You do not have permission to access this page'),'danger', "dashboard"); + _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard"); } run_hook('view_add_language'); #HOOK if (file_exists($lan_file)) { diff --git a/ui/ui/customers-view.tpl b/ui/ui/customers-view.tpl index 9dfa75f5..328344d5 100644 --- a/ui/ui/customers-view.tpl +++ b/ui/ui/customers-view.tpl @@ -6,7 +6,7 @@
avatar + onerror="this.src='{$UPLOAD_PATH}/user.default.jpg'" alt="avatar">

{$d['fullname']}

diff --git a/ui/ui/sections/header.tpl b/ui/ui/sections/header.tpl index 07388b06..fc1ca388 100644 --- a/ui/ui/sections/header.tpl +++ b/ui/ui/sections/header.tpl @@ -81,14 +81,14 @@