diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c5b4135..4aac06d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/README.md b/README.md index 31ffadfd..d19af204 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/system/controllers/order.php b/system/controllers/order.php index c2c9a09a..016c2c4c 100644 --- a/system/controllers/order.php +++ b/system/controllers/order.php @@ -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') diff --git a/system/controllers/pluginmanager.php b/system/controllers/pluginmanager.php index d160c01f..c3f11a45 100644 --- a/system/controllers/pluginmanager.php +++ b/system/controllers/pluginmanager.php @@ -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); diff --git a/system/controllers/register.php b/system/controllers/register.php index f554be4d..5f41f97f 100644 --- a/system/controllers/register.php +++ b/system/controllers/register.php @@ -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'); diff --git a/system/controllers/services.php b/system/controllers/services.php index 35137f82..7621a535 100644 --- a/system/controllers/services.php +++ b/system/controllers/services.php @@ -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) { diff --git a/system/controllers/settings.php b/system/controllers/settings.php index 8a5e818e..6a5625c6 100644 --- a/system/controllers/settings.php +++ b/system/controllers/settings.php @@ -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; diff --git a/system/lan/english/common.lan.php b/system/lan/english/common.lan.php index f6dda107..a72756a0 100644 --- a/system/lan/english/common.lan.php +++ b/system/lan/english/common.lan.php @@ -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'; diff --git a/ui/ui/app-settings.tpl b/ui/ui/app-settings.tpl index 683276d6..f8ffb419 100644 --- a/ui/ui/app-settings.tpl +++ b/ui/ui/app-settings.tpl @@ -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 class="form-group"> - <div class="col-lg-offset-2 col-lg-10"> - <button class="btn btn-primary 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> + + <div class="panel-body"> + <div class="form-group"> + <button class="btn btn-success btn-block waves-effect waves-light" + type="submit">{$_L['Save']}</button> + </div> + </div> + + <pre>/ip hotspot walled-garden + add dst-host={$_domain} + add dst-host=*.{$_domain}</pre> </div> </div> </form> diff --git a/ui/ui/register-otp.tpl b/ui/ui/register-otp.tpl index 917f1023..49896d18 100644 --- a/ui/ui/register-otp.tpl +++ b/ui/ui/register-otp.tpl @@ -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"> diff --git a/ui/ui/register-rotp.tpl b/ui/ui/register-rotp.tpl index d01cca02..a9a99e6c 100644 --- a/ui/ui/register-rotp.tpl +++ b/ui/ui/register-rotp.tpl @@ -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> diff --git a/ui/ui/register.tpl b/ui/ui/register.tpl index 8e88d9d1..849c1c01 100644 --- a/ui/ui/register.tpl +++ b/ui/ui/register.tpl @@ -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,21 +73,23 @@ <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"> + <a href="{$_url}login" class="btn btn-warning">{$_L['Cancel']}</a> + </div> <div class="btn-group"> - <button class="btn btn-primary waves-effect waves-light" + <button class="btn btn-success waves-effect waves-light" type="submit">{$_L['Register']}</button> </div> - <div class="btn-group"> - <a href="{$_url}login" class="btn btn-success">{$_L['Cancel']}</a> - </div> </div> </div> </div> diff --git a/ui/ui/sections/header.tpl b/ui/ui/sections/header.tpl index 2da993e0..187b5dad 100644 --- a/ui/ui/sections/header.tpl +++ b/ui/ui/sections/header.tpl @@ -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> - <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 $_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} diff --git a/ui/ui/sections/user-header.tpl b/ui/ui/sections/user-header.tpl index 330c5aad..d5b261ee 100644 --- a/ui/ui/sections/user-header.tpl +++ b/ui/ui/sections/user-header.tpl @@ -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"> diff --git a/ui/ui/user-dashboard.tpl b/ui/ui/user-dashboard.tpl index fa993322..ed4a7858 100644 --- a/ui/ui/user-dashboard.tpl +++ b/ui/ui/user-dashboard.tpl @@ -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,7 +124,8 @@ </script> {/if} <br> - <div class="box box-primary box-solid mb30"> + {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> </div> @@ -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"} \ No newline at end of file diff --git a/version.json b/version.json index 0503f161..1d34fd01 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "2023.6.20" + "version": "2023.7.28" } \ No newline at end of file