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'])) {
|
||||
$config['language'] = 'english';
|
||||
// Check if the user has selected a language
|
||||
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)) {
|
||||
$_L = json_decode(file_get_contents($lan_file), true);
|
||||
$_SESSION['Lang'] = $_L;
|
||||
|
||||
if (empty($_SESSION['Lang'])) {
|
||||
if (empty($config['language'])) {
|
||||
$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 {
|
||||
$_L['author'] = 'Auto Generated by iBNuX Script';
|
||||
$_SESSION['Lang'] = $_L;
|
||||
file_put_contents($lan_file, json_encode($_L));
|
||||
$_L = $_SESSION['Lang'];
|
||||
}
|
||||
|
||||
|
||||
|
@ -10,7 +10,12 @@ class Lang
|
||||
{
|
||||
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'])) {
|
||||
$_L = array_merge($_L, $_SESSION['Lang']);
|
||||
}
|
||||
|
@ -325,6 +325,6 @@ class Validator
|
||||
public static function containsKeyword($string, $keywords = ['mikrotik', 'hotspot', 'pppoe', 'radius', 'dummy'])
|
||||
{
|
||||
$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('_path', __DIR__);
|
||||
$ui->assign('_c', $config);
|
||||
$ui->assign('user_language', $_SESSION['user_language']);
|
||||
$ui->assign('UPLOAD_PATH', str_replace($root_path, '', $UPLOAD_PATH));
|
||||
$ui->assign('CACHE_PATH', str_replace($root_path, '', $CACHE_PATH));
|
||||
$ui->assign('PAGES_PATH', str_replace($root_path, '', $PAGES_PATH));
|
||||
|
@ -37,7 +37,7 @@ switch ($action) {
|
||||
}
|
||||
$user->password = $npass;
|
||||
$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 ($tur['status'] == 'on') {
|
||||
$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'));
|
||||
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:
|
||||
$ui->display('a404.tpl');
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ switch ($action) {
|
||||
$p = ORM::for_table('tbl_plans')->find_one($bill['plan_id']);
|
||||
$dvc = Package::getDevice($p);
|
||||
if ($_app_stage != 'demo') {
|
||||
try{
|
||||
try {
|
||||
if (file_exists($dvc)) {
|
||||
require_once $dvc;
|
||||
if ((new $p['device'])->online_customer($user, $bill['routers'])) {
|
||||
@ -36,7 +36,7 @@ switch ($action) {
|
||||
} else {
|
||||
die(Lang::T('-'));
|
||||
}
|
||||
}catch (Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
die(Lang::T('Failed to connect to device'));
|
||||
}
|
||||
}
|
||||
@ -47,14 +47,31 @@ switch ($action) {
|
||||
break;
|
||||
case 'inbox_unread':
|
||||
$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;
|
||||
}
|
||||
die();
|
||||
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();
|
||||
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>';
|
||||
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>';
|
||||
}
|
||||
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();
|
||||
default:
|
||||
|
@ -722,5 +722,7 @@
|
||||
"in_here_too_": "in here too.",
|
||||
"Empty_this_to_use_internal_mail___PHP": "Empty this to use internal mail() PHP",
|
||||
"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",
|
||||
"Api": "Api",
|
||||
"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",
|
||||
"Monthly_Registered_Customers": "Monthly Registered Customers",
|
||||
"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);
|
||||
});
|
||||
</script>
|
||||
{include file="sections/footer.tpl"}
|
||||
{include file="sections/footer.tpl"}
|
||||
|
@ -66,6 +66,15 @@
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu .dropdown-item {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.dropdown-menu .dropdown-item button {
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
{if isset($xheader)}
|
||||
@ -87,10 +96,22 @@
|
||||
</a>
|
||||
<div class="navbar-custom-menu">
|
||||
<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">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
|
||||
<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>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
|
Loading…
x
Reference in New Issue
Block a user