forked from kevinowino869/mitrobill
Merge branch 'hotspotbilling:Development' into Development
This commit is contained in:
commit
a4303a4804
27
init.php
27
init.php
@ -131,17 +131,26 @@ if ((!empty($radius_user) && $config['radius_enable']) || _post('radius_enable')
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (empty($config['language'])) {
|
// Check if the user has selected a language
|
||||||
$config['language'] = 'english';
|
if (!empty($_SESSION['user_language'])) {
|
||||||
|
$config['language'] = $_SESSION['user_language'];
|
||||||
}
|
}
|
||||||
$lan_file = $root_path . File::pathFixer('system/lan/' . $config['language'] . '.json');
|
|
||||||
if (file_exists($lan_file)) {
|
if (empty($_SESSION['Lang'])) {
|
||||||
$_L = json_decode(file_get_contents($lan_file), true);
|
if (empty($config['language'])) {
|
||||||
$_SESSION['Lang'] = $_L;
|
$config['language'] = 'english';
|
||||||
|
}
|
||||||
|
$lan_file = $root_path . File::pathFixer('system/lan/' . $config['language'] . '.json');
|
||||||
|
if (file_exists($lan_file)) {
|
||||||
|
$_L = json_decode(file_get_contents($lan_file), true);
|
||||||
|
$_SESSION['Lang'] = $_L;
|
||||||
|
} else {
|
||||||
|
$_L['author'] = 'Auto Generated by iBNuX Script';
|
||||||
|
$_SESSION['Lang'] = $_L;
|
||||||
|
file_put_contents($lan_file, json_encode($_L));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$_L['author'] = 'Auto Generated by iBNuX Script';
|
$_L = $_SESSION['Lang'];
|
||||||
$_SESSION['Lang'] = $_L;
|
|
||||||
file_put_contents($lan_file, json_encode($_L));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,7 +10,12 @@ class Lang
|
|||||||
{
|
{
|
||||||
public static function T($key)
|
public static function T($key)
|
||||||
{
|
{
|
||||||
global $_L, $lan_file, $config;
|
global $_L, $lan_file, $root_path, $config;
|
||||||
|
|
||||||
|
if (empty($lan_file)) {
|
||||||
|
$lan_file = $root_path . File::pathFixer('system/lan/' . $config['language'] . '.json');
|
||||||
|
}
|
||||||
|
|
||||||
if (is_array($_SESSION['Lang'])) {
|
if (is_array($_SESSION['Lang'])) {
|
||||||
$_L = array_merge($_L, $_SESSION['Lang']);
|
$_L = array_merge($_L, $_SESSION['Lang']);
|
||||||
}
|
}
|
||||||
|
@ -325,6 +325,6 @@ class Validator
|
|||||||
public static function containsKeyword($string, $keywords = ['mikrotik', 'hotspot', 'pppoe', 'radius', 'dummy'])
|
public static function containsKeyword($string, $keywords = ['mikrotik', 'hotspot', 'pppoe', 'radius', 'dummy'])
|
||||||
{
|
{
|
||||||
$regex = '/' . implode('|', $keywords) . '/i';
|
$regex = '/' . implode('|', $keywords) . '/i';
|
||||||
return preg_match($regex, $string);
|
return preg_match($regex, strtolower($string));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,7 @@ $ui->assign('_domain', str_replace('www.', '', parse_url(APP_URL, PHP_URL_HOST))
|
|||||||
$ui->assign('_url', APP_URL . '/?_route=');
|
$ui->assign('_url', APP_URL . '/?_route=');
|
||||||
$ui->assign('_path', __DIR__);
|
$ui->assign('_path', __DIR__);
|
||||||
$ui->assign('_c', $config);
|
$ui->assign('_c', $config);
|
||||||
|
$ui->assign('user_language', $_SESSION['user_language']);
|
||||||
$ui->assign('UPLOAD_PATH', str_replace($root_path, '', $UPLOAD_PATH));
|
$ui->assign('UPLOAD_PATH', str_replace($root_path, '', $UPLOAD_PATH));
|
||||||
$ui->assign('CACHE_PATH', str_replace($root_path, '', $CACHE_PATH));
|
$ui->assign('CACHE_PATH', str_replace($root_path, '', $CACHE_PATH));
|
||||||
$ui->assign('PAGES_PATH', str_replace($root_path, '', $PAGES_PATH));
|
$ui->assign('PAGES_PATH', str_replace($root_path, '', $PAGES_PATH));
|
||||||
|
@ -37,7 +37,7 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
$user->password = $npass;
|
$user->password = $npass;
|
||||||
$turs = ORM::for_table('tbl_user_recharges')->where('customer_id', $user['id'])->find_many();
|
$turs = ORM::for_table('tbl_user_recharges')->where('customer_id', $user['id'])->find_many();
|
||||||
foreach($turs as $tur) {
|
foreach ($turs as $tur) {
|
||||||
// if has active plan, change the password to devices
|
// if has active plan, change the password to devices
|
||||||
if ($tur['status'] == 'on') {
|
if ($tur['status'] == 'on') {
|
||||||
$p = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
|
$p = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
|
||||||
@ -239,6 +239,28 @@ switch ($action) {
|
|||||||
r2(U . 'accounts/profile', 's', Lang::T('Phone number updated successfully'));
|
r2(U . 'accounts/profile', 's', Lang::T('Phone number updated successfully'));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'language-update-post':
|
||||||
|
global $root_path;
|
||||||
|
$selected_language = _req('lang', 'english');
|
||||||
|
|
||||||
|
$_SESSION['user_language'] = $selected_language;
|
||||||
|
|
||||||
|
$lan_file = $root_path . File::pathFixer('system/lan/' . $selected_language . '.json');
|
||||||
|
|
||||||
|
if (file_exists($lan_file)) {
|
||||||
|
$_L = json_decode(file_get_contents($lan_file), true);
|
||||||
|
$_SESSION['Lang'] = $_L;
|
||||||
|
} else {
|
||||||
|
$_L['author'] = 'Auto Generated by iBNuX Script';
|
||||||
|
$_SESSION['Lang'] = $_L;
|
||||||
|
file_put_contents($lan_file, json_encode($_L));
|
||||||
|
}
|
||||||
|
|
||||||
|
r2($_SERVER['HTTP_REFERER'], 's', ucwords($selected_language));
|
||||||
|
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$ui->display('a404.tpl');
|
$ui->display('a404.tpl');
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ switch ($action) {
|
|||||||
$p = ORM::for_table('tbl_plans')->find_one($bill['plan_id']);
|
$p = ORM::for_table('tbl_plans')->find_one($bill['plan_id']);
|
||||||
$dvc = Package::getDevice($p);
|
$dvc = Package::getDevice($p);
|
||||||
if ($_app_stage != 'demo') {
|
if ($_app_stage != 'demo') {
|
||||||
try{
|
try {
|
||||||
if (file_exists($dvc)) {
|
if (file_exists($dvc)) {
|
||||||
require_once $dvc;
|
require_once $dvc;
|
||||||
if ((new $p['device'])->online_customer($user, $bill['routers'])) {
|
if ((new $p['device'])->online_customer($user, $bill['routers'])) {
|
||||||
@ -36,7 +36,7 @@ switch ($action) {
|
|||||||
} else {
|
} else {
|
||||||
die(Lang::T('-'));
|
die(Lang::T('-'));
|
||||||
}
|
}
|
||||||
}catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
die(Lang::T('Failed to connect to device'));
|
die(Lang::T('Failed to connect to device'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -47,14 +47,31 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
case 'inbox_unread':
|
case 'inbox_unread':
|
||||||
$count = ORM::for_table('tbl_customers_inbox')->where('customer_id', $user['id'])->whereRaw('date_read is null')->count('id');
|
$count = ORM::for_table('tbl_customers_inbox')->where('customer_id', $user['id'])->whereRaw('date_read is null')->count('id');
|
||||||
if($count>0){
|
if ($count > 0) {
|
||||||
echo $count;
|
echo $count;
|
||||||
}
|
}
|
||||||
die();
|
die();
|
||||||
case 'inbox':
|
case 'inbox':
|
||||||
$inboxs = ORM::for_table('tbl_customers_inbox')->selects(['id', 'subject', 'date_created'])->where('customer_id', $user['id'])->whereRaw('date_read is null')->order_by_desc('date_created')->limit(10)->find_many();
|
$inboxs = ORM::for_table('tbl_customers_inbox')->selects(['id', 'subject', 'date_created'])->where('customer_id', $user['id'])->whereRaw('date_read is null')->order_by_desc('date_created')->limit(10)->find_many();
|
||||||
foreach($inboxs as $inbox){
|
foreach ($inboxs as $inbox) {
|
||||||
echo '<li><a href="'.U.'mail/view/'.$inbox['id'].'">'.$inbox['subject'].'<br><sub class="text-muted">'.Lang::dateTimeFormat($inbox['date_created']).'</sub></a></li>';
|
echo '<li><a href="' . U . 'mail/view/' . $inbox['id'] . '">' . $inbox['subject'] . '<br><sub class="text-muted">' . Lang::dateTimeFormat($inbox['date_created']) . '</sub></a></li>';
|
||||||
|
}
|
||||||
|
die();
|
||||||
|
case 'language':
|
||||||
|
$select = _get('select');
|
||||||
|
$folders = [];
|
||||||
|
$files = scandir('system/lan/');
|
||||||
|
foreach ($files as $file) {
|
||||||
|
if (is_file('system/lan/' . $file) && !in_array($file, ['index.html', 'country.json', '.DS_Store'])) {
|
||||||
|
$file = str_replace(".json", "", $file);
|
||||||
|
if(!empty($file)){
|
||||||
|
echo '<li><a href="' . U . 'accounts/language-update-post&lang=' . $file. '">';
|
||||||
|
if($select == $file){
|
||||||
|
echo '<span class="glyphicon glyphicon-ok"></span> ';
|
||||||
|
}
|
||||||
|
echo ucwords($file) . '</a></li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
die();
|
die();
|
||||||
default:
|
default:
|
||||||
|
@ -722,5 +722,7 @@
|
|||||||
"in_here_too_": "in here too.",
|
"in_here_too_": "in here too.",
|
||||||
"Empty_this_to_use_internal_mail___PHP": "Empty this to use internal mail() PHP",
|
"Empty_this_to_use_internal_mail___PHP": "Empty this to use internal mail() PHP",
|
||||||
"Mail_Reply_To": "Mail Reply To",
|
"Mail_Reply_To": "Mail Reply To",
|
||||||
"Customer_will_reply_email_to_this_address__empty_if_you_want_to_use_From_Address": "Customer will reply email to this address, empty if you want to use From Address"
|
"Customer_will_reply_email_to_this_address__empty_if_you_want_to_use_From_Address": "Customer will reply email to this address, empty if you want to use From Address",
|
||||||
|
"You_will_get_Payment_and_Error_notification": "You will get Payment and Error notification",
|
||||||
|
"Languge_set_to_english": "Bahasa diatur ke bahasa Inggris"
|
||||||
}
|
}
|
@ -567,5 +567,6 @@
|
|||||||
"Hotspot_Auth_Method": "Metode Otentikasi Hotspot",
|
"Hotspot_Auth_Method": "Metode Otentikasi Hotspot",
|
||||||
"Api": "Api",
|
"Api": "Api",
|
||||||
"Http_Chap": "Http-Bab",
|
"Http_Chap": "Http-Bab",
|
||||||
"Hotspot_Authentication_Method__Make_sure_you_have_changed_your_hotspot_login_page_": "Metode Otentikasi Hotspot. Pastikan Anda telah mengubah halaman login hotspot Anda."
|
"Hotspot_Authentication_Method__Make_sure_you_have_changed_your_hotspot_login_page_": "Metode Otentikasi Hotspot. Pastikan Anda telah mengubah halaman login hotspot Anda.",
|
||||||
|
"Languge_set_to_indonesia": "Language set to indonesia"
|
||||||
}
|
}
|
@ -373,5 +373,6 @@
|
|||||||
"Hotspot": "Hotspot",
|
"Hotspot": "Hotspot",
|
||||||
"Monthly_Registered_Customers": "Monthly Registered Customers",
|
"Monthly_Registered_Customers": "Monthly Registered Customers",
|
||||||
"Total_Monthly_Sales": "Total Monthly Sales",
|
"Total_Monthly_Sales": "Total Monthly Sales",
|
||||||
"Active_Users": "Active Users"
|
"Active_Users": "Active Users",
|
||||||
|
"Languge_set_to_spanish": "Bahasa disetel ke bahasa Spanyol"
|
||||||
}
|
}
|
@ -895,4 +895,4 @@ add dst-host=*.{$_domain}</pre>
|
|||||||
document.getElementById("tax_rate").addEventListener("change", toggleCustomTaxRate);
|
document.getElementById("tax_rate").addEventListener("change", toggleCustomTaxRate);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{include file="sections/footer.tpl"}
|
{include file="sections/footer.tpl"}
|
||||||
|
@ -66,6 +66,15 @@
|
|||||||
transform: rotate(360deg);
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dropdown-menu .dropdown-item {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu .dropdown-item button {
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
{if isset($xheader)}
|
{if isset($xheader)}
|
||||||
@ -87,10 +96,22 @@
|
|||||||
</a>
|
</a>
|
||||||
<div class="navbar-custom-menu">
|
<div class="navbar-custom-menu">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="dropdown tasks-menu">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="true">
|
||||||
|
<i class="fa fa-flag-o"></i> <span class="d-none d-sm-inline">{ucwords($user_language)}</span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<!-- inner menu: contains the actual data -->
|
||||||
|
<ul class="menu" api-get-text="{$_url}autoload_user/language&select={$user_language}"></ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li class="dropdown notifications-menu">
|
<li class="dropdown notifications-menu">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
|
||||||
<i class="fa fa-envelope-o"></i>
|
<i class="fa fa-envelope-o"></i>
|
||||||
<span class="label label-warning" api-get-text="{$_url}autoload_user/inbox_unread"></span>
|
<span class="label label-warning"
|
||||||
|
api-get-text="{$_url}autoload_user/inbox_unread"></span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li>
|
<li>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user