Add Public Header and Footer in user-ui folder, and use it for public page
This commit is contained in:
parent
7e9f6123e8
commit
686d2a188a
114
system/controllers/forgot.php
Normal file
114
system/controllers/forgot.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
||||
* by https://t.me/ibnux
|
||||
**/
|
||||
$do = '';
|
||||
if (isset($routes['1'])) {
|
||||
$do = $routes['1'];
|
||||
}
|
||||
|
||||
$otpPath = $CACHE_PATH . File::pathFixer('/forgot/');
|
||||
|
||||
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']) && $_c['allow_phone_otp'] == 'yes') {
|
||||
$phonenumber = Lang::phoneFormat($username);
|
||||
$username = $phonenumber;
|
||||
} else if (strlen($username) < 21) {
|
||||
$phonenumber = $username;
|
||||
}
|
||||
$msg = '';
|
||||
if (Validator::Length($username, 35, 2) == false) {
|
||||
$msg .= 'Username should be between 3 to 55 characters' . '<br>';
|
||||
}
|
||||
if (Validator::Length($fullname, 36, 2) == false) {
|
||||
$msg .= 'Full Name should be between 3 to 25 characters' . '<br>';
|
||||
}
|
||||
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 .= Lang::T('Passwords does not match') . '<br>';
|
||||
}
|
||||
|
||||
if (!empty($config['sms_url']) && $_c['allow_phone_otp'] == 'yes') {
|
||||
$otpPath .= sha1($username . $db_pass) . ".txt";
|
||||
run_hook('validate_otp'); #HOOK
|
||||
//expired 10 minutes
|
||||
if (file_exists($otpPath) && time() - filemtime($otpPath) > 1200) {
|
||||
unlink($otpPath);
|
||||
r2(U . 'register', 's', 'Verification code expired');
|
||||
} else if (file_exists($otpPath)) {
|
||||
$code = file_get_contents($otpPath);
|
||||
if ($code != $otp_code) {
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('fullname', $fullname);
|
||||
$ui->assign('address', $address);
|
||||
$ui->assign('email', $email);
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', 'Wrong Verification code');
|
||||
$ui->assign('notify_t', 'd');
|
||||
$ui->display('user-ui/register-otp.tpl');
|
||||
exit();
|
||||
} else {
|
||||
unlink($otpPath);
|
||||
}
|
||||
} else {
|
||||
r2(U . 'register', 's', 'No Verification code');
|
||||
}
|
||||
}
|
||||
$d = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
|
||||
if ($d) {
|
||||
$msg .= Lang::T('Account already axist') . '<br>';
|
||||
}
|
||||
if ($msg == '') {
|
||||
run_hook('register_user'); #HOOK
|
||||
$d = ORM::for_table('tbl_customers')->create();
|
||||
$d->username = alphanumeric($username, "+_.@-");
|
||||
$d->password = $password;
|
||||
$d->fullname = $fullname;
|
||||
$d->address = $address;
|
||||
$d->email = $email;
|
||||
$d->phonenumber = $phonenumber;
|
||||
if ($d->save()) {
|
||||
$user = $d->id();
|
||||
r2(U . 'login', 's', Lang::T('Register Success! You can login now'));
|
||||
} else {
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('fullname', $fullname);
|
||||
$ui->assign('address', $address);
|
||||
$ui->assign('email', $email);
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', 'Failed to register');
|
||||
$ui->assign('notify_t', 'd');
|
||||
run_hook('view_otp_register'); #HOOK
|
||||
$ui->display('user-ui/register-rotp.tpl');
|
||||
}
|
||||
} else {
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('fullname', $fullname);
|
||||
$ui->assign('address', $address);
|
||||
$ui->assign('email', $email);
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', $msg);
|
||||
$ui->assign('notify_t', 'd');
|
||||
$ui->display('user-ui/register.tpl');
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$ui->display('user-ui/forgot.tpl');
|
||||
break;
|
||||
}
|
@ -290,9 +290,11 @@ switch ($do) {
|
||||
default:
|
||||
run_hook('customer_view_login'); #HOOK
|
||||
if ($config['disable_registration'] == 'yes') {
|
||||
$ui->assign('_title', Lang::T('Activation'));
|
||||
$ui->assign('code', alphanumeric(_get('code'), "-"));
|
||||
$ui->display('user-ui/login-noreg.tpl');
|
||||
} else {
|
||||
$ui->assign('_title', Lang::T('Login'));
|
||||
$ui->display('user-ui/login.tpl');
|
||||
}
|
||||
break;
|
||||
|
@ -62,6 +62,7 @@ switch ($do) {
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', 'Wrong Verification code');
|
||||
$ui->assign('notify_t', 'd');
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
$ui->display('user-ui/register-otp.tpl');
|
||||
exit();
|
||||
} else {
|
||||
@ -95,6 +96,7 @@ switch ($do) {
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', 'Failed to register');
|
||||
$ui->assign('notify_t', 'd');
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
run_hook('view_otp_register'); #HOOK
|
||||
$ui->display('user-ui/register-rotp.tpl');
|
||||
}
|
||||
@ -106,6 +108,7 @@ switch ($do) {
|
||||
$ui->assign('phonenumber', $phonenumber);
|
||||
$ui->assign('notify', $msg);
|
||||
$ui->assign('notify_t', 'd');
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
$ui->display('user-ui/register.tpl');
|
||||
}
|
||||
break;
|
||||
@ -128,6 +131,7 @@ switch ($do) {
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('notify', 'Please wait ' . (600 - (time() - filemtime($otpPath))) . ' seconds before sending another SMS');
|
||||
$ui->assign('notify_t', 'd');
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
$ui->display('user-ui/register-otp.tpl');
|
||||
} else {
|
||||
$otp = rand(100000, 999999);
|
||||
@ -136,9 +140,11 @@ switch ($do) {
|
||||
$ui->assign('username', $username);
|
||||
$ui->assign('notify', 'Registration code has been sent to your phone');
|
||||
$ui->assign('notify_t', 's');
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
$ui->display('user-ui/register-otp.tpl');
|
||||
}
|
||||
} else {
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
run_hook('view_otp_register'); #HOOK
|
||||
$ui->display('user-ui/register-rotp.tpl');
|
||||
}
|
||||
@ -148,6 +154,7 @@ switch ($do) {
|
||||
$ui->assign('address', "");
|
||||
$ui->assign('email', "");
|
||||
$ui->assign('otp', false);
|
||||
$ui->assign('_title', Lang::T('Register'));
|
||||
run_hook('view_register'); #HOOK
|
||||
$ui->display('user-ui/register.tpl');
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ class MikrotikVpn
|
||||
$cid = self::getIdByCustomer($customer, $client);
|
||||
if (empty($cid)) {
|
||||
$this->addVpnUser($client, $plan, $customer);
|
||||
}else{
|
||||
} else {
|
||||
$setRequest = new RouterOS\Request('/ppp/secret/set');
|
||||
$setRequest->setArgument('numbers', $cid);
|
||||
if (!empty($customer['pppoe_password'])) {
|
||||
@ -43,13 +43,13 @@ class MikrotikVpn
|
||||
}
|
||||
if (!empty($customer['pppoe_ip'])) {
|
||||
$setRequest->setArgument('remote-address', $customer['pppoe_ip']);
|
||||
}else{
|
||||
} else {
|
||||
$setRequest->setArgument('remote-address', '0.0.0.0');
|
||||
}
|
||||
$setRequest->setArgument('profile', $plan['name_plan']);
|
||||
$setRequest->setArgument('comment', $customer['fullname'] . ' | ' . $customer['email'] . ' | ' . implode(', ', User::getBillNames($customer['id'])));
|
||||
$client->sendSync($setRequest);
|
||||
if(isset($isChangePlan) && $isChangePlan){
|
||||
if (isset($isChangePlan) && $isChangePlan) {
|
||||
$this->removeVpnActive($client, $customer['username']);
|
||||
if (!empty($customer['pppoe_username'])) {
|
||||
$this->removeVpnActive($client, $customer['pppoe_username']);
|
||||
@ -64,7 +64,7 @@ class MikrotikVpn
|
||||
$client = $this->getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||
if (!empty($plan['plan_expired'])) {
|
||||
$p = ORM::for_table("tbl_plans")->find_one($plan['plan_expired']);
|
||||
if($p){
|
||||
if ($p) {
|
||||
$this->add_customer($customer, $p);
|
||||
$this->removeVpnActive($client, $customer['username']);
|
||||
if (!empty($customer['pppoe_username'])) {
|
||||
@ -117,26 +117,27 @@ class MikrotikVpn
|
||||
$unitup = 'M';
|
||||
}
|
||||
$rate = $bw['rate_up'] . $unitup . "/" . $bw['rate_down'] . $unitdown;
|
||||
if(!empty(trim($bw['burst']))){
|
||||
$rate .= ' '.$bw['burst'];
|
||||
if (!empty(trim($bw['burst']))) {
|
||||
$rate .= ' ' . $bw['burst'];
|
||||
}
|
||||
$pool = ORM::for_table("tbl_pool")->where("pool_name", $plan['pool'])->find_one();
|
||||
$addRequest = new RouterOS\Request('/ppp/profile/add');
|
||||
$client->sendSync(
|
||||
$addRequest
|
||||
->setArgument('name', $plan['name_plan'])
|
||||
->setArgument('local-address', (!empty($pool['local_ip'])) ? $pool['local_ip']: $pool['pool_name'])
|
||||
->setArgument('local-address', (!empty($pool['local_ip'])) ? $pool['local_ip'] : $pool['pool_name'])
|
||||
->setArgument('remote-address', $pool['pool_name'])
|
||||
->setArgument('rate-limit', $rate)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function getIdByCustomer($customer, $client){
|
||||
function getIdByCustomer($customer, $client)
|
||||
{
|
||||
$printRequest = new RouterOS\Request('/ppp/secret/print');
|
||||
$printRequest->setQuery(RouterOS\Query::where('name', $customer['username']));
|
||||
$id = $client->sendSync($printRequest)->getProperty('.id');
|
||||
if(empty($id)){
|
||||
if (empty($id)) {
|
||||
if (!empty($customer['pppoe_username'])) {
|
||||
$printRequest = new RouterOS\Request('/ppp/secret/print');
|
||||
$printRequest->setQuery(RouterOS\Query::where('name', $customer['pppoe_username']));
|
||||
@ -171,15 +172,15 @@ class MikrotikVpn
|
||||
$unitup = 'M';
|
||||
}
|
||||
$rate = $bw['rate_up'] . $unitup . "/" . $bw['rate_down'] . $unitdown;
|
||||
if(!empty(trim($bw['burst']))){
|
||||
$rate .= ' '.$bw['burst'];
|
||||
if (!empty(trim($bw['burst']))) {
|
||||
$rate .= ' ' . $bw['burst'];
|
||||
}
|
||||
$pool = ORM::for_table("tbl_pool")->where("pool_name", $new_plan['pool'])->find_one();
|
||||
$setRequest = new RouterOS\Request('/ppp/profile/set');
|
||||
$client->sendSync(
|
||||
$setRequest
|
||||
->setArgument('numbers', $profileID)
|
||||
->setArgument('local-address', (!empty($pool['local_ip'])) ? $pool['local_ip']: $pool['pool_name'])
|
||||
->setArgument('local-address', (!empty($pool['local_ip'])) ? $pool['local_ip'] : $pool['pool_name'])
|
||||
->setArgument('remote-address', $pool['pool_name'])
|
||||
->setArgument('rate-limit', $rate)
|
||||
->setArgument('on-up', $new_plan['on_login'])
|
||||
@ -205,7 +206,8 @@ class MikrotikVpn
|
||||
);
|
||||
}
|
||||
|
||||
function add_pool($pool){
|
||||
function add_pool($pool)
|
||||
{
|
||||
global $_app_stage;
|
||||
if ($_app_stage == 'demo') {
|
||||
return null;
|
||||
@ -220,7 +222,8 @@ class MikrotikVpn
|
||||
);
|
||||
}
|
||||
|
||||
function update_pool($old_pool, $new_pool){
|
||||
function update_pool($old_pool, $new_pool)
|
||||
{
|
||||
global $_app_stage;
|
||||
if ($_app_stage == 'demo') {
|
||||
return null;
|
||||
@ -245,7 +248,8 @@ class MikrotikVpn
|
||||
}
|
||||
}
|
||||
|
||||
function remove_pool($pool){
|
||||
function remove_pool($pool)
|
||||
{
|
||||
global $_app_stage;
|
||||
if ($_app_stage == 'demo') {
|
||||
return null;
|
||||
@ -304,7 +308,7 @@ class MikrotikVpn
|
||||
$removeRequest = new RouterOS\Request('/ppp/secret/remove');
|
||||
$removeRequest->setArgument('numbers', $id);
|
||||
$client->sendSync($removeRequest);
|
||||
$this->rmNat($client, $cstid);
|
||||
$this->rmNat($client, $cstid);
|
||||
}
|
||||
|
||||
function addVpnUser($client, $plan, $customer)
|
||||
@ -324,18 +328,17 @@ class MikrotikVpn
|
||||
$setRequest->setArgument('name', $customer['username']);
|
||||
}
|
||||
if (!empty($customer['pppoe_ip'])) {
|
||||
$ips = $customer['pppoe_ip'];
|
||||
$ips = $customer['pppoe_ip'];
|
||||
$setRequest->setArgument('remote-address', $customer['pppoe_ip']);
|
||||
} else {
|
||||
$ips = $this->checkIpAddr($plan['pool'], $customer['id']);
|
||||
$setRequest->setArgument('remote-address', $ips);
|
||||
|
||||
}
|
||||
$this->addNat($client, $plan, $customer, $ips);
|
||||
$ips = $this->checkIpAddr($plan['pool'], $customer['id']);
|
||||
$setRequest->setArgument('remote-address', $ips);
|
||||
}
|
||||
$this->addNat($client, $plan, $customer, $ips);
|
||||
$client->sendSync($setRequest);
|
||||
$customer->service_type = 'VPN';
|
||||
$customer->pppoe_ip = $ips;
|
||||
$customer->save();
|
||||
$customer->service_type = 'VPN';
|
||||
$customer->pppoe_ip = $ips;
|
||||
$customer->save();
|
||||
}
|
||||
|
||||
function removeVpnActive($client, $username)
|
||||
@ -368,7 +371,6 @@ class MikrotikVpn
|
||||
->setArgument('comment', $comment)
|
||||
->setArgument('list', $listName)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function removeIpFromAddressList($client, $ip)
|
||||
@ -395,110 +397,111 @@ class MikrotikVpn
|
||||
if ($_app_stage == 'demo') {
|
||||
return null;
|
||||
}
|
||||
$this->checkPort($cust['id'], 'Winbox', $plan['routers']);
|
||||
$this->checkPort($cust['id'], 'Api', $plan['routers']);
|
||||
$this->checkPort($cust['id'], 'Web', $plan['routers']);
|
||||
$tcf = ORM::for_table('tbl_customers_fields')
|
||||
->where('customer_id', $cust['id'])
|
||||
->find_many();
|
||||
$ip = ORM::for_table('tbl_port_pool')
|
||||
->where('routers', $plan['routers'])
|
||||
->find_one();
|
||||
foreach ($tcf as $cf) {
|
||||
$dst = $cf['field_value'];
|
||||
$cmnt = $cf['field_name'];
|
||||
if ($cmnt == 'Winbox') {
|
||||
$tp = '8291'; }
|
||||
if ($cmnt == 'Web') {
|
||||
$tp = '80'; }
|
||||
if ($cmnt == 'Api') {
|
||||
$tp = '8728'; }
|
||||
if ($cmnt == 'Winbox' || $cmnt == 'Web' || $cmnt == 'Api') {
|
||||
$addRequest = new RouterOS\Request('/ip/firewall/nat/add');
|
||||
$client->sendSync(
|
||||
$addRequest
|
||||
->setArgument('chain', 'dstnat')
|
||||
->setArgument('protocol', 'tcp')
|
||||
->setArgument('dst-port', $dst)
|
||||
->setArgument('action', 'dst-nat')
|
||||
->setArgument('to-addresses', $ips)
|
||||
->setArgument('to-ports', $tp)
|
||||
->setArgument('dst-address', $ip['public_ip'])
|
||||
->setArgument('comment', $cmnt.' || '.$cust['username'])
|
||||
);
|
||||
}
|
||||
}
|
||||
$this->checkPort($cust['id'], 'Winbox', $plan['routers']);
|
||||
$this->checkPort($cust['id'], 'Api', $plan['routers']);
|
||||
$this->checkPort($cust['id'], 'Web', $plan['routers']);
|
||||
$tcf = ORM::for_table('tbl_customers_fields')
|
||||
->where('customer_id', $cust['id'])
|
||||
->find_many();
|
||||
$ip = ORM::for_table('tbl_port_pool')
|
||||
->where('routers', $plan['routers'])
|
||||
->find_one();
|
||||
foreach ($tcf as $cf) {
|
||||
$dst = $cf['field_value'];
|
||||
$cmnt = $cf['field_name'];
|
||||
if ($cmnt == 'Winbox') {
|
||||
$tp = '8291';
|
||||
}
|
||||
if ($cmnt == 'Web') {
|
||||
$tp = '80';
|
||||
}
|
||||
if ($cmnt == 'Api') {
|
||||
$tp = '8728';
|
||||
}
|
||||
if ($cmnt == 'Winbox' || $cmnt == 'Web' || $cmnt == 'Api') {
|
||||
$addRequest = new RouterOS\Request('/ip/firewall/nat/add');
|
||||
$client->sendSync(
|
||||
$addRequest
|
||||
->setArgument('chain', 'dstnat')
|
||||
->setArgument('protocol', 'tcp')
|
||||
->setArgument('dst-port', $dst)
|
||||
->setArgument('action', 'dst-nat')
|
||||
->setArgument('to-addresses', $ips)
|
||||
->setArgument('to-ports', $tp)
|
||||
->setArgument('dst-address', $ip['public_ip'])
|
||||
->setArgument('comment', $cmnt . ' || ' . $cust['username'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function rmNat($client, $cstid)
|
||||
{
|
||||
global $_app_stage;
|
||||
if ($_app_stage == 'demo') {
|
||||
return null;
|
||||
}
|
||||
|
||||
$cst = ORM::for_table('tbl_customers')->find_one($cstid);
|
||||
|
||||
$cst = ORM::for_table('tbl_customers')->find_one($cstid);
|
||||
$printRequest = new RouterOS\Request('/ip/firewall/nat/print');
|
||||
$printRequest->setQuery(RouterOS\Query::where('to-addresses', $cst['pppoe_ip']));
|
||||
$nats = $client->sendSync($printRequest);
|
||||
foreach ($nats as $nat) {
|
||||
$id = $client->sendSync($printRequest)->getProperty('.id');
|
||||
$removeRequest = new RouterOS\Request('/ip/firewall/nat/remove');
|
||||
$removeRequest->setArgument('numbers', $id);
|
||||
$client->sendSync($removeRequest);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function checkPort($id, $portn, $router)
|
||||
{
|
||||
$tcf = ORM::for_table('tbl_customers_fields')
|
||||
->where('customer_id', $id)
|
||||
->where('field_name', $portn)
|
||||
->find_one();
|
||||
$ports = ORM::for_table('tbl_port_pool')
|
||||
->where('routers', $router)
|
||||
->find_one();
|
||||
$port = explode('-',$ports['range_port']);
|
||||
if (empty($tcf) && !empty($ports)) {
|
||||
repeat:
|
||||
$portr = rand($port['0'], $port['1']);
|
||||
if (ORM::for_table('tbl_customers_fields')->where('field_value', $portr)->find_one()) {
|
||||
if($portr == $port['1'])
|
||||
{
|
||||
return;
|
||||
}
|
||||
goto repeat;
|
||||
}
|
||||
$cf = ORM::for_table('tbl_customers_fields')->create();
|
||||
$cf->customer_id = $id;
|
||||
$cf->field_name = $portn;
|
||||
$cf->field_value = $portr;
|
||||
$cf->save();
|
||||
}
|
||||
}
|
||||
|
||||
function checkIpAddr($pname, $id) {
|
||||
$c = ORM::for_table('tbl_customers')->find_one($id);
|
||||
$ipp = ORM::for_table('tbl_pool')
|
||||
->where('pool_name', $pname)
|
||||
->find_one();
|
||||
$ip_r = explode('-',$ipp['range_ip']);
|
||||
$ip_1 = explode('.',$ip_r['0']);
|
||||
$ip_2 = explode('.',$ip_r['1']);
|
||||
repeat:
|
||||
$ipt = rand($ip_1['3'], $ip_2['3']);
|
||||
$ips = $ip_1['0'].'.'.$ip_1['1'].'.'.$ip_1['2'].'.'.$ipt;
|
||||
if (empty($c['pppoe_ip'])) {
|
||||
if (ORM::for_table('tbl_customers')->where('pppoe_ip' ,$ips)->find_one()) {
|
||||
if ($ip_2['3'] == $ipt)
|
||||
{
|
||||
return;
|
||||
}
|
||||
goto repeat;
|
||||
}
|
||||
return $ips;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($nats as $nat) {
|
||||
$id = $client->sendSync($printRequest)->getProperty('.id');
|
||||
$removeRequest = new RouterOS\Request('/ip/firewall/nat/remove');
|
||||
$removeRequest->setArgument('numbers', $id);
|
||||
$client->sendSync($removeRequest);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function checkPort($id, $portn, $router)
|
||||
{
|
||||
$tcf = ORM::for_table('tbl_customers_fields')
|
||||
->where('customer_id', $id)
|
||||
->where('field_name', $portn)
|
||||
->find_one();
|
||||
$ports = ORM::for_table('tbl_port_pool')
|
||||
->where('routers', $router)
|
||||
->find_one();
|
||||
$port = explode('-', $ports['range_port']);
|
||||
if (empty($tcf) && !empty($ports)) {
|
||||
repeat:
|
||||
$portr = rand($port['0'], $port['1']);
|
||||
if (ORM::for_table('tbl_customers_fields')->where('field_value', $portr)->find_one()) {
|
||||
if ($portr == $port['1']) {
|
||||
return;
|
||||
}
|
||||
goto repeat;
|
||||
}
|
||||
$cf = ORM::for_table('tbl_customers_fields')->create();
|
||||
$cf->customer_id = $id;
|
||||
$cf->field_name = $portn;
|
||||
$cf->field_value = $portr;
|
||||
$cf->save();
|
||||
}
|
||||
}
|
||||
|
||||
function checkIpAddr($pname, $id)
|
||||
{
|
||||
$c = ORM::for_table('tbl_customers')->find_one($id);
|
||||
$ipp = ORM::for_table('tbl_pool')
|
||||
->where('pool_name', $pname)
|
||||
->find_one();
|
||||
$ip_r = explode('-', $ipp['range_ip']);
|
||||
$ip_1 = explode('.', $ip_r['0']);
|
||||
$ip_2 = explode('.', $ip_r['1']);
|
||||
repeat:
|
||||
$ipt = rand($ip_1['3'], $ip_2['3']);
|
||||
$ips = $ip_1['0'] . '.' . $ip_1['1'] . '.' . $ip_1['2'] . '.' . $ipt;
|
||||
if (empty($c['pppoe_ip'])) {
|
||||
if (ORM::for_table('tbl_customers')->where('pppoe_ip', $ips)->find_one()) {
|
||||
if ($ip_2['3'] == $ipt) {
|
||||
return;
|
||||
}
|
||||
goto repeat;
|
||||
}
|
||||
return $ips;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
{include file="user-ui/header.tpl"}
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
<div class="hidden-xs" style="height:100px"></div>
|
||||
|
||||
<div class="page page-err clearfix">
|
||||
<div class="err-container">
|
||||
@ -6,5 +7,4 @@
|
||||
<p class="text-desc mb20">{Lang::T('Coming Soon! Next Version...')}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="user-ui/footer.tpl"}
|
||||
{include file="user-ui/footer-public.tpl"}
|
39
ui/ui/user-ui/footer-public.tpl
Normal file
39
ui/ui/user-ui/footer-public.tpl
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/if}
|
||||
<script src="ui/ui/scripts/vendors.js?v=1"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
73
ui/ui/user-ui/forgot.tpl
Normal file
73
ui/ui/user-ui/forgot.tpl
Normal file
@ -0,0 +1,73 @@
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-sm-offset-1">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Announcement')}</div>
|
||||
<div class="panel-body">
|
||||
{$Announcement = "{$PAGES_PATH}/Announcement.html"}
|
||||
{if file_exists($Announcement)}
|
||||
{include file=$Announcement}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Log in to Member Panel')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/post" method="post">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon2"><i
|
||||
class="glyphicon glyphicon-lock"></i></span>
|
||||
<input type="password" class="form-control" name="password"
|
||||
placeholder="{Lang::T('Password')}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="clearfix hidden">
|
||||
<div class="ui-checkbox ui-checkbox-primary right">
|
||||
<label>
|
||||
<input type="checkbox">
|
||||
<span>Remember me</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}register" class="btn btn-success">{Lang::T('Register')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="submit" class="btn btn-primary">{Lang::T('Login')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="{$_url}forgot" class="btn btn-link">{Lang::T('Forgot Password')}</a>
|
||||
<br>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{include file="user-ui/footer-public.tpl"}
|
43
ui/ui/user-ui/header-public.tpl
Normal file
43
ui/ui/user-ui/header-public.tpl
Normal file
@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{$_title} - {$_c['CompanyName']}</title>
|
||||
<link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
|
||||
|
||||
<link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/sweetalert2.min.css" />
|
||||
<script src="ui/ui/scripts/sweetalert2.all.min.js"></script>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body id="app" class="app off-canvas body-full">
|
||||
<div class="container">
|
||||
<div class="form-head mb20">
|
||||
<h1 class="site-logo h2 mb5 mt5 text-center text-uppercase text-bold"
|
||||
style="text-shadow: 2px 2px 4px #757575;">{$_c['CompanyName']}</h1>
|
||||
<hr>
|
||||
</div>
|
||||
{if isset($notify)}
|
||||
<script>
|
||||
// Display SweetAlert toast notification
|
||||
Swal.fire({
|
||||
icon: '{if $notify_t == "s"}success{else}warning{/if}',
|
||||
title: '{$notify}',
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 5000,
|
||||
timerProgressBar: true,
|
||||
didOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
@ -1,118 +1,83 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{Lang::T('Login')} - {$_c['CompanyName']}</title>
|
||||
<link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
|
||||
|
||||
<link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="hidden-xs" style="height:150px"></div>
|
||||
<div class="form-head mb20">
|
||||
<h1 class="site-logo h2 mb5 mt5 text-center text-uppercase text-bold"
|
||||
style="text-shadow: 2px 2px 4px #757575;">{$_c['CompanyName']}</h1>
|
||||
<hr>
|
||||
</div>
|
||||
{if isset($notify)}
|
||||
<div class="alert alert-{if $notify_t == 's'}success{else}danger{/if}">
|
||||
<button type="button" class="close" data-dismiss="alert">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div>{$notify}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Announcement')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Announcement.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Login / Activate Voucher')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/activation" method="post">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username" required
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Enter voucher code here')}</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="voucher" name="voucher" required
|
||||
value="{$code}" placeholder="{Lang::T('Enter voucher code here')}">
|
||||
<span class="input-group-btn">
|
||||
<a class="btn btn-default"
|
||||
href="{APP_URL}/scan/?back={urlencode($_url)}{urlencode("login&code=")}"><i
|
||||
class="glyphicon glyphicon-qrcode"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<button type="submit"
|
||||
class="btn btn-primary">{Lang::T('Login / Activate Voucher')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Activate Voucher')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/activation" method="post">
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Enter voucher code here')}</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="voucher_only" name="voucher_only" required
|
||||
value="{$code}" placeholder="{Lang::T('Enter voucher code here')}">
|
||||
<span class="input-group-btn">
|
||||
<a class="btn btn-default"
|
||||
href="{APP_URL}/scan/?back={urlencode($_url)}{urlencode("login&code=")}"><i
|
||||
class="glyphicon glyphicon-qrcode"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<button type="submit"
|
||||
class="btn btn-primary">{Lang::T('Activate Voucher')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a>
|
||||
•
|
||||
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a>
|
||||
</center>
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
<div class="hidden-xs" style="height:100px"></div>
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Announcement')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Announcement.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="ui/ui/scripts/vendors.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Login / Activate Voucher')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/activation" method="post">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username" required
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Enter voucher code here')}</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="voucher" name="voucher" required value="{$code}"
|
||||
placeholder="{Lang::T('Enter voucher code here')}">
|
||||
<span class="input-group-btn">
|
||||
<a class="btn btn-default"
|
||||
href="{APP_URL}/scan/?back={urlencode($_url)}{urlencode("login&code=")}"><i
|
||||
class="glyphicon glyphicon-qrcode"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<button type="submit" class="btn btn-primary">{Lang::T('Login / Activate Voucher')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Activate Voucher')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/activation" method="post">
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Enter voucher code here')}</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="voucher_only" name="voucher_only" required
|
||||
value="{$code}" placeholder="{Lang::T('Enter voucher code here')}">
|
||||
<span class="input-group-btn">
|
||||
<a class="btn btn-default"
|
||||
href="{APP_URL}/scan/?back={urlencode($_url)}{urlencode("login&code=")}"><i
|
||||
class="glyphicon glyphicon-qrcode"></i></a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<button type="submit" class="btn btn-primary">{Lang::T('Activate Voucher')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a>
|
||||
•
|
||||
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
{include file="user-ui/footer-public.tpl"}
|
@ -1,119 +1,92 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{Lang::T('Login')} - {$_c['CompanyName']}</title>
|
||||
<link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
|
||||
|
||||
<link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="hidden-xs" style="height:150px"></div>
|
||||
<div class="form-head mb20">
|
||||
<h1 class="site-logo h2 mb5 mt5 text-center text-uppercase text-bold"
|
||||
style="text-shadow: 2px 2px 4px #757575;">{$_c['CompanyName']}</h1>
|
||||
<hr>
|
||||
<div class="hidden-xs" style="height:100px"></div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-sm-offset-1">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Announcement')}</div>
|
||||
<div class="panel-body">
|
||||
{$Announcement = "{$PAGES_PATH}/Announcement.html"}
|
||||
{if file_exists($Announcement)}
|
||||
{include file=$Announcement}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if isset($notify)}
|
||||
<div class="alert alert-{if $notify_t == 's'}success{else}danger{/if}">
|
||||
<button type="button" class="close" data-dismiss="alert">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div>{$notify}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-sm-offset-1">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Announcement')}</div>
|
||||
<div class="panel-body">
|
||||
{$Announcement = "{$PAGES_PATH}/Announcement.html"}
|
||||
{if file_exists($Announcement)}
|
||||
{include file=$Announcement}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Log in to Member Panel')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/post" method="post">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Log in to Member Panel')}</div>
|
||||
<div class="panel-body">
|
||||
<form action="{$_url}login/post" method="post">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon2"><i class="glyphicon glyphicon-lock"></i></span>
|
||||
<input type="password" class="form-control" name="password" placeholder="{Lang::T('Password')}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon2"><i
|
||||
class="glyphicon glyphicon-lock"></i></span>
|
||||
<input type="password" class="form-control" name="password"
|
||||
placeholder="{Lang::T('Password')}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="clearfix hidden">
|
||||
<div class="ui-checkbox ui-checkbox-primary right">
|
||||
<label>
|
||||
<input type="checkbox">
|
||||
<span>Remember me</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}register" class="btn btn-success">{Lang::T('Register')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="submit" class="btn btn-primary">{Lang::T('Login')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="{$_url}forgot" class="btn btn-link">{Lang::T('Forgot Password')}</a>
|
||||
<br>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="clearfix hidden">
|
||||
<div class="ui-checkbox ui-checkbox-primary right">
|
||||
<label>
|
||||
<input type="checkbox">
|
||||
<span>Remember me</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}register" class="btn btn-success">{Lang::T('Register')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="submit" class="btn btn-primary">{Lang::T('Login')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="ui/ui/scripts/vendors.js?v=1"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
{include file="user-ui/footer-public.tpl"}
|
@ -1,170 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
<div class="hidden-xs" style="height:100px"></div>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{Lang::T('Register')} - {$_c['CompanyName']}</title>
|
||||
<link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
|
||||
|
||||
<link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/sweetalert2.min.css" />
|
||||
<script src="ui/ui/scripts/sweetalert2.all.min.js"></script>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body id="app" class="app off-canvas body-full">
|
||||
|
||||
<div class="container">
|
||||
<div class="hidden-xs" style="height:150px"></div>
|
||||
<div class="form-head mb20">
|
||||
<h1 class="site-logo h2 mb5 mt5 text-center text-uppercase text-bold"
|
||||
style="text-shadow: 2px 2px 4px #757575;">{$_c['CompanyName']}</h1>
|
||||
<hr>
|
||||
</div>
|
||||
{if isset($notify)}
|
||||
<script>
|
||||
// Display SweetAlert toast notification
|
||||
Swal.fire({
|
||||
icon: '{if $notify_t == "s"}success{else}warning{/if}',
|
||||
title: '{$notify}',
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 5000,
|
||||
timerProgressBar: true,
|
||||
didOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Registration Info')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Registration_Info.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form action="{$_url}register/post" method="post">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">1. {Lang::T('Register as Member')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username" value="{$username}"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('SMS Verification Code')}</label>
|
||||
<input type="text" required class="form-control" id="otp_code" value=""
|
||||
placeholder="{Lang::T('Verification Code')}" name="otp_code">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Full Name')}</label>
|
||||
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
||||
name="fullname">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Email')}</label>
|
||||
<input type="text" class="form-control" placeholder="xxxxxx@xxx.xx"
|
||||
id="email" value="{$email}" name="email">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Address')}</label>
|
||||
<input type="text" name="address" id="address" value="{$address}"
|
||||
class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">2. {Lang::T('Password')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<input type="password" required class="form-control" id="password" name="password">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Confirm Password')}</label>
|
||||
<input type="password" required class="form-control" id="cpassword"
|
||||
name="cpassword">
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}register" class="btn btn-success">{Lang::T('Cancel')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" type="submit">{Lang::T('Register')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">{Lang::T('Registration Info')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Registration_Info.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/if}
|
||||
<script src="ui/ui/scripts/vendors.js?v=1"></script>
|
||||
</body>
|
||||
<form action="{$_url}register/post" method="post">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">1. {Lang::T('Register as Member')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username" value="{$username}"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('SMS Verification Code')}</label>
|
||||
<input type="text" required class="form-control" id="otp_code" value=""
|
||||
placeholder="{Lang::T('Verification Code')}" name="otp_code">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Full Name')}</label>
|
||||
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
|
||||
name="fullname">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Email')}</label>
|
||||
<input type="text" class="form-control" placeholder="xxxxxx@xxx.xx" id="email"
|
||||
value="{$email}" name="email">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Address')}</label>
|
||||
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">2. {Lang::T('Password')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<input type="password" required class="form-control" id="password" name="password">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{Lang::T('Confirm Password')}</label>
|
||||
<input type="password" required class="form-control" id="cpassword" name="cpassword">
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}register" class="btn btn-success">{Lang::T('Cancel')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" type="submit">{Lang::T('Register')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/if}
|
||||
{include file="user-ui/footer-public.tpl"}
|
@ -1,131 +1,55 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{Lang::T('Register')} - {$_c['CompanyName']}</title>
|
||||
<link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
|
||||
<div class="hidden-xs" style="height:100px"></div>
|
||||
|
||||
<link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/sweetalert2.min.css" />
|
||||
<script src="ui/ui/scripts/sweetalert2.all.min.js"></script>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body id="app" class="app off-canvas body-full">
|
||||
<div class="container">
|
||||
<div class="hidden-xs" style="height:150px"></div>
|
||||
<div class="form-head mb20">
|
||||
<h1 class="site-logo h2 mb5 mt5 text-center text-uppercase text-bold"
|
||||
style="text-shadow: 2px 2px 4px #757575;">{$_c['CompanyName']}</h1>
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Registration Info')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Registration_Info.html"}
|
||||
</div>
|
||||
</div>
|
||||
{if isset($notify)}
|
||||
<script>
|
||||
// Display SweetAlert toast notification
|
||||
Swal.fire({
|
||||
icon: '{if $notify_t == "s"}success{else}warning{/if}',
|
||||
title: '{$notify}',
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 5000,
|
||||
timerProgressBar: true,
|
||||
didOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Registration Info')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Registration_Info.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form action="{$_url}register" method="post">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">1. {Lang::T('Register as Member')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}login" class="btn btn-warning">{Lang::T('Cancel')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success" type="submit">{Lang::T('Request OTP')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</div>
|
||||
<form action="{$_url}register" method="post">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">1. {Lang::T('Register as Member')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
<div class="btn-group btn-group-justified mb15">
|
||||
<div class="btn-group">
|
||||
<a href="{$_url}login" class="btn btn-warning">{Lang::T('Cancel')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success" type="submit">{Lang::T('Request OTP')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/if}
|
||||
<script src="ui/ui/scripts/vendors.js?v=1"></script>
|
||||
</body>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</html>
|
||||
{include file="user-ui/footer-public.tpl"}
|
@ -1,166 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
{include file="user-ui/header-public.tpl"}
|
||||
<div class="hidden-xs" style="height:100px"></div>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>{Lang::T('Register')} - {$_c['CompanyName']}</title>
|
||||
<link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
|
||||
|
||||
<link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
|
||||
<link rel="stylesheet" href="ui/ui/styles/sweetalert2.min.css" />
|
||||
<script src="ui/ui/scripts/sweetalert2.all.min.js"></script>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body id="app" class="app off-canvas body-full">
|
||||
|
||||
<div class="container">
|
||||
<div class="hidden-xs" style="height:150px"></div>
|
||||
<div class="form-head mb20">
|
||||
<h1 class="site-logo h2 mb5 mt5 text-center text-uppercase text-bold"
|
||||
style="text-shadow: 2px 2px 4px #757575;">{$_c['CompanyName']}</h1>
|
||||
<hr>
|
||||
</div>
|
||||
{if isset($notify)}
|
||||
<script>
|
||||
// Display SweetAlert toast notification
|
||||
Swal.fire({
|
||||
icon: '{if $notify_t == "s"}success{else}warning{/if}',
|
||||
title: '{$notify}',
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 5000,
|
||||
timerProgressBar: true,
|
||||
didOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Registration Info')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Registration_Info.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="{$_url}register/post" method="post">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">1. {Lang::T('Register as Member')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="md-input-container">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('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>{Lang::T('Email')}</label>
|
||||
<input type="text" class="form-control" id="email" placeholder="xxxxxxx@xxxx.xx"
|
||||
value="{$email}" name="email">
|
||||
</div>
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('Address')}</label>
|
||||
<input type="text" name="address" id="address" value="{$address}"
|
||||
class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">2. {Lang::T('Password')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<input type="password" required class="form-control" id="password" name="password">
|
||||
</div>
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('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">{Lang::T('Cancel')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success" type="submit">{Lang::T('Register')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="modal-body" id="HTMLModal_konten"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">×</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">{Lang::T('Registration Info')}</div>
|
||||
<div class="panel-body">
|
||||
{include file="$_path/../pages/Registration_Info.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/if}
|
||||
<script src="ui/ui/scripts/vendors.js?v=1"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<form class="form-horizontal" action="{$_url}register/post" method="post">
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">1. {Lang::T('Register as Member')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="md-input-container">
|
||||
<label>{if $_c['country_code_phone']!= ''}{Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}</label>
|
||||
<div class="input-group">
|
||||
{if $_c['country_code_phone']!= ''}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-phone-alt"></i></span>
|
||||
{else}
|
||||
<span class="input-group-addon" id="basic-addon1"><i
|
||||
class="glyphicon glyphicon-user"></i></span>
|
||||
{/if}
|
||||
<input type="text" class="form-control" name="username"
|
||||
placeholder="{if $_c['country_code_phone']!= ''}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Username')}{/if}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('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>{Lang::T('Email')}</label>
|
||||
<input type="text" class="form-control" id="email" placeholder="xxxxxxx@xxxx.xx"
|
||||
value="{$email}" name="email">
|
||||
</div>
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('Address')}</label>
|
||||
<input type="text" name="address" id="address" value="{$address}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">2. {Lang::T('Password')}</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-container">
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('Password')}</label>
|
||||
<input type="password" required class="form-control" id="password" name="password">
|
||||
</div>
|
||||
<div class="md-input-container md-float-label">
|
||||
<label>{Lang::T('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">{Lang::T('Cancel')}</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success" type="submit">{Lang::T('Register')}</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<center>
|
||||
<a href="javascript:showPrivacy()">Privacy</a>
|
||||
•
|
||||
<a href="javascript:showTaC()">T & C</a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{include file="user-ui/footer-public.tpl"}
|
Loading…
x
Reference in New Issue
Block a user