Merge pull request #10 from hotspotbilling/Development

- Fix link buy Voucher
- Add email field to registration form
- Change registration design Form
- Add Setting to disable Voucher
- Fix Title for PPPOE plans
- Fix Plugin Cache
This commit is contained in:
iBNu Maksum 2023-07-28 01:44:32 -07:00 committed by GitHub
commit 6aa4fe8b96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 112 additions and 34 deletions

View File

@ -2,6 +2,14 @@
# CHANGELOG
## 2023.7.28
- Fix link buy Voucher
- Add email field to registration form
- Change registration design Form
- Add Setting to disable Voucher
- Fix Title for PPPOE plans
- Fix Plugin Cache
## 2023.6.20
- Hide time for Created date.

View File

@ -31,7 +31,7 @@ Most current web servers with PHP & MySQL installed will be capable of running P
Minimum Requirements
- Linux or Windows OS
- PHP Version 7.2+
- PHP Version 7.4
- Both PDO & MySQLi Support
- GD2 Image Library
- CURL support

View File

@ -56,6 +56,7 @@ switch ($action) {
} else {
r2(U . "order/package/", 's', Lang::T("You have no unpaid transaction"));
}
break;
case 'view':
$trxid = $routes['2'] * 1;
$trx = ORM::for_table('tbl_payment_gateway')

View File

@ -20,7 +20,7 @@ if ($admin['user_type'] != 'Admin') {
}
$cache = File::pathFixer('system/cache/plugin_repository.json');
if (file_exists($cache) && time() - filemtime($cache) > (24 * 60 * 60)) {
if (file_exists($cache) && time() - filemtime($cache) < (24 * 60 * 60)) {
$json = json_decode(file_get_contents($cache), true);
} else {
$data = file_get_contents($plugin_repository);

View File

@ -20,12 +20,15 @@ switch ($do) {
case 'post':
$otp_code = _post('otp_code');
$username = alphanumeric(_post('username'),"+_.");
$email = _post('email');
$fullname = _post('fullname');
$password = _post('password');
$cpassword = _post('cpassword');
$address = _post('address');
if(!empty($config['sms_url'])){
$phonenumber = $username;
}else if(strlen($username)<21){
$phonenumber = $username;
}
$msg = '';
if (Validator::Length($username, 35, 2) == false) {
@ -37,6 +40,9 @@ switch ($do) {
if (!Validator::Length($password, 35, 2)) {
$msg .= 'Password should be between 3 to 35 characters' . '<br>';
}
if (!Validator::Email($email)) {
$msg .= 'Email is not Valid<br>';
}
if ($password != $cpassword) {
$msg .= $_L['PasswordsNotMatch'] . '<br>';
}
@ -53,6 +59,7 @@ switch ($do) {
$ui->assign('username', $username);
$ui->assign('fullname', $fullname);
$ui->assign('address', $address);
$ui->assign('email', $email);
$ui->assign('phonenumber', $phonenumber);
$ui->assign('notify', '<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">
@ -79,7 +86,7 @@ switch ($do) {
$d->password = $password;
$d->fullname = $fullname;
$d->address = $address;
$d->email = '';
$d->email = $email;
$d->phonenumber = $phonenumber;
if ($d->save()) {
$user = $d->id();
@ -88,6 +95,7 @@ switch ($do) {
$ui->assign('username', $username);
$ui->assign('fullname', $fullname);
$ui->assign('address', $address);
$ui->assign('email', $email);
$ui->assign('phonenumber', $phonenumber);
$ui->assign('notify', '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">
@ -101,6 +109,7 @@ switch ($do) {
$ui->assign('username', $username);
$ui->assign('fullname', $fullname);
$ui->assign('address', $address);
$ui->assign('email', $email);
$ui->assign('phonenumber', $phonenumber);
$ui->assign('notify', '<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">
@ -152,6 +161,7 @@ switch ($do) {
$ui->assign('username', "");
$ui->assign('fullname', "");
$ui->assign('address', "");
$ui->assign('email', "");
$ui->assign('otp', false);
run_hook('view_register'); #HOOK
$ui->display('register.tpl');

View File

@ -238,6 +238,7 @@ switch ($action) {
break;
case 'pppoe':
$ui->assign('_title', $_L['PPPOE_Plans']);
$ui->assign('xfooter', '<script type="text/javascript" src="ui/lib/c/pppoe.js"></script>');
$name = _post('name');
@ -256,6 +257,7 @@ switch ($action) {
break;
case 'pppoe-add':
$ui->assign('_title', $_L['PPPOE_Plans']);
$d = ORM::for_table('tbl_bandwidth')->find_many();
$ui->assign('d', $d);
$p = ORM::for_table('tbl_pool')->find_many();
@ -267,6 +269,7 @@ switch ($action) {
break;
case 'pppoe-edit':
$ui->assign('_title', $_L['PPPOE_Plans']);
$id = $routes['2'];
$d = ORM::for_table('tbl_plans')->find_one($id);
if ($d) {

View File

@ -206,6 +206,7 @@ switch ($action) {
case 'app-post':
$company = _post('company');
$footer = _post('footer');
$disable_voucher = _post('disable_voucher');
$telegram_bot = _post('telegram_bot');
$telegram_target_id = _post('telegram_target_id');
$sms_url = _post('sms_url');
@ -245,6 +246,17 @@ switch ($action) {
$d->save();
}
$d = ORM::for_table('tbl_appconfig')->where('setting', 'disable_voucher')->find_one();
if($d){
$d->value = $disable_voucher;
$d->save();
}else{
$d = ORM::for_table('tbl_appconfig')->create();
$d->setting = 'disable_voucher';
$d->value = $disable_voucher;
$d->save();
}
$d = ORM::for_table('tbl_appconfig')->where('setting', 'telegram_bot')->find_one();
if($d){
$d->value = $telegram_bot;

View File

@ -329,3 +329,6 @@ $_L['You_are_Online_Logout'] = 'You are Online, Logout?';
$_L['Connect_to_Internet'] = 'Connect to Internet?';
$_L['Your_account_not_connected_to_internet'] = 'Your account not connected to internet';
$_L['Failed_to_create_transaction_'] = 'Failed to create transaction. ';
$_L['Failed_to_check_status_transaction_'] = 'Failed to check status transaction. ';
$_L['Disable_Voucher'] = 'Disable Voucher';

View File

@ -56,6 +56,16 @@
<p class="help-block">edit at config.php</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Disable Voucher')}</label>
<div class="col-md-6">
<select name="disable_voucher" id="disable_voucher" class="form-control">
<option value="no" {if $_c['disable_voucher'] == 'no'}selected="selected" {/if}>No</option>
<option value="yes" {if $_c['disable_voucher'] == 'yes'}selected="selected" {/if}>Yes</option>
</select>
<p class="help-block">Voucher activation menu will be hidden</p>
</div>
</div>
</div>
<div class="panel-heading">Telegram Notification</div>
<div class="panel-body">
@ -155,17 +165,19 @@ add dst-host=*.tawk.to</pre>
<span class="help-block">{$_L['You_can_use_html_tag']}</span>
</div>
</div>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button class="btn btn-primary waves-effect waves-light"
<button class="btn btn-success btn-block waves-effect waves-light"
type="submit">{$_L['Save']}</button>
</div>
</div>
</div>
<pre>/ip hotspot walled-garden
add dst-host={$_domain}
add dst-host=*.{$_domain}</pre>
</div>
add dst-host={$_domain}
add dst-host=*.{$_domain}</pre>
</div>
</div>
</form>

View File

@ -58,6 +58,11 @@
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
name="fullname">
</div>
<div class="form-group">
<label>{$_L['Email']}</label>
<input type="text" required class="form-control" placeholder="xxxxxx@xxx.xx" id="email" value="{$email}"
name="email">
</div>
<div class="form-group">
<label>{$_L['Address']}</label>
<input type="text" name="address" id="address" value="{$address}" class="form-control">

View File

@ -63,11 +63,11 @@
</div>
<div class="btn-group btn-group-justified mb15">
<div class="btn-group">
<button class="btn btn-primary waves-effect waves-light"
type="submit">{Lang::T('Request OTP')}</button>
<a href="{$_url}login" class="btn btn-warning">{$_L['Cancel']}</a>
</div>
<div class="btn-group">
<a href="{$_url}login" class="btn btn-success">{$_L['Cancel']}</a>
<button class="btn btn-success waves-effect waves-light"
type="submit">{Lang::T('Request OTP')}</button>
</div>
</div>
</div>

View File

@ -43,19 +43,25 @@
<div class="panel-heading">1. {$_L['Register_Member']}</div>
<div class="panel-body">
<div class="form-container">
<div class="md-input-container md-float-label">
<input type="text" required class="md-input" id="username" value="{$username}"
placeholder="{$_L['Phone_Number']}" name="username">
<div class="md-input-container">
<label>{$_L['Phone_Number']}</label>
<input type="text" required class="form-control" id="username" value="{$username}"
placeholder="{$_L['Phone_Number']}" name="username">
</div>
<div class="md-input-container md-float-label">
<input type="text" required class="md-input" id="fullname" value="{$fullname}"
name="fullname">
<label>{$_L['Full_Name']}</label>
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
name="fullname">
</div>
<div class="md-input-container md-float-label">
<label>{$_L['Email']}</label>
<input type="text" required class="form-control" id="email"
placeholder="xxxxxxx@xxxx.xx" value="{$email}" name="email">
</div>
<div class="md-input-container md-float-label">
<input type="text" name="address" id="address" value="{$address}" class="md-input">
<label>{$_L['Address']}</label>
<input type="text" name="address" id="address" value="{$address}"
class="form-control">
</div>
</div>
</div>
@ -67,20 +73,22 @@
<div class="panel-body">
<div class="form-container">
<div class="md-input-container md-float-label">
<input type="password" required class="md-input" id="password" name="password">
<label>{$_L['Password']}</label>
<input type="password" required class="form-control" id="password" name="password">
</div>
<div class="md-input-container md-float-label">
<input type="password" required class="md-input" id="cpassword" name="cpassword">
<label>{$_L['Confirm_Password']}</label>
<input type="password" required class="form-control" id="cpassword"
name="cpassword">
</div>
<br>
<div class="btn-group btn-group-justified mb15">
<div class="btn-group">
<button class="btn btn-primary waves-effect waves-light"
type="submit">{$_L['Register']}</button>
<a href="{$_url}login" class="btn btn-warning">{$_L['Cancel']}</a>
</div>
<div class="btn-group">
<a href="{$_url}login" class="btn btn-success">{$_L['Cancel']}</a>
<button class="btn btn-success waves-effect waves-light"
type="submit">{$_L['Register']}</button>
</div>
</div>
</div>

View File

@ -129,10 +129,12 @@
<ul class="treeview-menu">
<li {if $_routes[1] eq 'list'}class="active" {/if}><a
href="{$_url}prepaid/list">{$_L['Prepaid_User']}</a></li>
{if $_c['disable_voucher'] != 'yes'}
<li {if $_routes[1] eq 'voucher'}class="active" {/if}><a
href="{$_url}prepaid/voucher">{$_L['Prepaid_Vouchers']}</a></li>
<li {if $_routes[1] eq 'refill'}class="active" {/if}><a
href="{$_url}prepaid/refill">{$_L['Refill_Account']}</a></li>
{/if}
<li {if $_routes[1] eq 'recharge'}class="active" {/if}><a
href="{$_url}prepaid/recharge">{$_L['Recharge_Account']}</a></li>
{$_MENU_PREPAID}

View File

@ -102,12 +102,14 @@
</a>
</li>
{$_MENU_AFTER_DASHBOARD}
{if $_c['disable_voucher'] != 'yes'}
<li {if $_system_menu eq 'voucher'}class="active" {/if}>
<a href="{$_url}voucher/activation">
<i class="fa fa-ticket"></i>
<span>{Lang::T('Voucher')}</span>
</a>
</li>
{/if}
{if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' }
<li {if $_system_menu eq 'package'}class="active" {/if}>
<a href="{$_url}order/package">

View File

@ -99,6 +99,16 @@
</tr>
{/if}
</table>
{if $_c['disable_voucher'] == 'yes'}
<div class="box-footer">
{if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' }
<a href="{$_url}order/package" class="btn btn-primary btn-block">
<i class="ion ion-ios-cart"></i>
{Lang::T('Order Package')}
</a>
{/if}
</div>
{/if}
</div>
{if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on'}
<script>
@ -114,6 +124,7 @@
</script>
{/if}
<br>
{if $_c['disable_voucher'] != 'yes'}
<div class="box box-primary box-solid mb30">
<div class="box-header">
<h3 class="box-title">{$_L['Voucher_Activation']}</h3>
@ -134,7 +145,7 @@
</div>
<div class="box-body">
<div class="btn-group btn-group-justified" role="group">
<a class="btn btn-warning" href="{$_url}order/voucher">
<a class="btn btn-warning" href="{$_url}voucher/activation">
<i class="ion ion-ios-cart"></i>
{$_L['Order_Voucher']}
</a>
@ -147,6 +158,7 @@
</div>
</div>
</div>
{/if}
</div>
</div>
{include file="sections/user-footer.tpl"}

View File

@ -1,3 +1,3 @@
{
"version": "2023.6.20"
"version": "2023.7.28"
}