diff --git a/system/boot.php b/system/boot.php
index 9d0fd4de..67fa438b 100644
--- a/system/boot.php
+++ b/system/boot.php
@@ -47,6 +47,13 @@ function _get($param, $defvalue = '')
}
}
+class Lang {
+ public static function T($var) {
+ return Lang($var);
+ }
+}
+
+
require('system/orm.php');
ORM::configure("mysql:host=$db_host;dbname=$db_name");
@@ -175,6 +182,29 @@ function _log($description, $type = '', $userid = '0')
$d->save();
}
+function Lang($key){
+ global $_L,$lan_file;
+ if(!empty($_L[$key])){
+ return $_L[$key];
+ }
+ $val = $key;
+ $key = alphanumeric($key," ");
+ if(!empty($_L[$key])){
+ return $_L[$key];
+ }else if(!empty($_L[str_replace(' ','_',$key)])){
+ return $_L[str_replace(' ','_',$key)];
+ }else{
+ $key = str_replace(' ','_',$key);
+ file_put_contents($lan_file, "$"."_L['$key'] = '".addslashes($val)."';\n", FILE_APPEND);
+ return $val;
+ }
+}
+
+function alphanumeric($str, $tambahan = "")
+{
+ return preg_replace("/[^a-zA-Z0-9" . $tambahan . "]+/", "", $str);
+}
+
function sendTelegram($txt)
{
@@ -195,6 +225,16 @@ function sendSMS($phone, $txt)
}
}
+function sendWhatsapp($phone, $txt)
+{
+ global $_c;
+ if(!empty($_c['wa_url'])){
+ $waurl = str_replace('[number]',urlencode($phone),$_c['wa_url']);
+ $waurl = str_replace('[text]',urlencode($txt),$waurl);
+ file_get_contents($waurl);
+ }
+}
+
function time_elapsed_string($datetime, $full = false)
{
diff --git a/system/controllers/community.php b/system/controllers/community.php
new file mode 100644
index 00000000..6bcd10e8
--- /dev/null
+++ b/system/controllers/community.php
@@ -0,0 +1,13 @@
+assign('_title', 'Community - '. $config['CompanyName']);
+$ui->assign('_system_menu', 'community');
+
+$action = $routes['1'];
+$admin = Admin::_info();
+$ui->assign('_admin', $admin);
+
+$ui->display('community.tpl');
\ No newline at end of file
diff --git a/system/controllers/order.php b/system/controllers/order.php
new file mode 100644
index 00000000..00f2b157
--- /dev/null
+++ b/system/controllers/order.php
@@ -0,0 +1,39 @@
+assign('_system_menu', 'order');
+$action = $routes['1'];
+$user = User::_info();
+$ui->assign('_user', $user);
+
+//Client Page
+$bill = User::_billing();
+$ui->assign('_bill', $bill);
+
+
+switch ($action) {
+ case 'voucher':
+ $ui->assign('_title', $_L['Order_Voucher'].' - '. $config['CompanyName']);
+ $ui->display('user-order.tpl');
+ break;
+ case 'ppoe':
+ $ui->assign('_title', 'Order PPOE Internet- '. $config['CompanyName']);$routers = ORM::for_table('tbl_routers')->find_many();
+ $plans = ORM::for_table('tbl_plans')->where('type', 'PPPOE')->find_many();
+ $ui->assign('routers',$routers);
+ $ui->assign('plans', $plans);
+ $ui->display('user-orderPPOE.tpl');
+ break;
+ case 'hotspot':
+ $ui->assign('_title', 'Order Hotspot Internet- '. $config['CompanyName']);
+ $routers = ORM::for_table('tbl_routers')->find_many();
+ $plans = ORM::for_table('tbl_plans')->where('type', 'Hotspot')->find_many();
+ $ui->assign('routers',$routers);
+ $ui->assign('plans', $plans);
+ $ui->display('user-orderHotspot.tpl');
+ break;
+ default:
+ $ui->display('404.tpl');
+}
+
diff --git a/system/controllers/paymentgateway.php b/system/controllers/paymentgateway.php
index 52c0fff0..5421f4d9 100644
--- a/system/controllers/paymentgateway.php
+++ b/system/controllers/paymentgateway.php
@@ -12,6 +12,7 @@ $ui->assign('_admin', $admin);
switch ($action) {
case 'xendit':
$ui->assign('_title', 'Xendit - Payment Gateway - '. $config['CompanyName']);
+ $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_xendit.json'), true));
$ui->display('app-xendit.tpl');
break;
case 'xendit-post':
@@ -37,6 +38,16 @@ switch ($action) {
$d->value = $xendit_verification_token;
$d->save();
}
+ $d = ORM::for_table('tbl_appconfig')->where('setting', 'xendit_channel')->find_one();
+ if($d){
+ $d->value = implode(',',$_POST['xendit_channel']);
+ $d->save();
+ }else{
+ $d = ORM::for_table('tbl_appconfig')->create();
+ $d->setting = 'xendit_channel';
+ $d->value = implode(',',$_POST['xendit_channel']);
+ $d->save();
+ }
_log('[' . $admin['username'] . ']: Xendit ' . $_L['Settings_Saved_Successfully'], 'Admin', $admin['id']);
@@ -44,7 +55,7 @@ switch ($action) {
break;
case 'midtrans':
$ui->assign('_title', 'Midtrans - Payment Gateway - '. $config['CompanyName']);
-
+ $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_midtrans.json'), true));
$ui->display('app-midtrans.tpl');
break;
case 'midtrans-post':
@@ -81,9 +92,73 @@ switch ($action) {
$d->value = $midtrans_server_key;
$d->save();
}
+ $d = ORM::for_table('tbl_appconfig')->where('setting', 'midtrans_channel')->find_one();
+ if($d){
+ $d->value = implode(',',$_POST['midtrans_channel']);
+ $d->save();
+ }else{
+ $d = ORM::for_table('tbl_appconfig')->create();
+ $d->setting = 'midtrans_channel';
+ $d->value = implode(',',$_POST['midtrans_channel']);
+ $d->save();
+ }
_log('[' . $admin['username'] . ']: Midtrans ' . $_L['Settings_Saved_Successfully'], 'Admin', $admin['id']);
r2(U . 'paymentgateway/midtrans', 's', $_L['Settings_Saved_Successfully']);
break;
+ case 'tripay':
+ $ui->assign('_title', 'Tripay - Payment Gateway - '. $config['CompanyName']);
+ $ui->assign('channels', json_decode(file_get_contents('system/paymentgateway/channel_tripay.json'), true));
+ $ui->display('app-tripay.tpl');
+ break;
+ case 'tripay-post':
+ $tripay_merchant = _post('tripay_merchant');
+ $tripay_api_key = _post('tripay_api_key');
+ $tripay_secret_key = _post('tripay_secret_key');
+ $d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_merchant')->find_one();
+ if($d){
+ $d->value = $tripay_merchant;
+ $d->save();
+ }else{
+ $d = ORM::for_table('tbl_appconfig')->create();
+ $d->setting = 'tripay_merchant';
+ $d->value = $tripay_merchant;
+ $d->save();
+ }
+ $d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_api_key')->find_one();
+ if($d){
+ $d->value = $tripay_api_key;
+ $d->save();
+ }else{
+ $d = ORM::for_table('tbl_appconfig')->create();
+ $d->setting = 'tripay_api_key';
+ $d->value = $tripay_api_key;
+ $d->save();
+ }
+ $d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_secret_key')->find_one();
+ if($d){
+ $d->value = $tripay_secret_key;
+ $d->save();
+ }else{
+ $d = ORM::for_table('tbl_appconfig')->create();
+ $d->setting = 'tripay_secret_key';
+ $d->value = $tripay_secret_key;
+ $d->save();
+ }
+ $d = ORM::for_table('tbl_appconfig')->where('setting', 'tripay_channel')->find_one();
+ if($d){
+ $d->value = implode(',',$_POST['tripay_channel']);
+ $d->save();
+ }else{
+ $d = ORM::for_table('tbl_appconfig')->create();
+ $d->setting = 'tripay_channel';
+ $d->value = implode(',',$_POST['tripay_channel']);
+ $d->save();
+ }
+
+ _log('[' . $admin['username'] . ']: Tripay ' . $_L['Settings_Saved_Successfully'].json_encode($_POST['tripay_channel']), 'Admin', $admin['id']);
+
+ r2(U . 'paymentgateway/tripay', 's', $_L['Settings_Saved_Successfully']);
+ break;
}
diff --git a/system/controllers/prepaid.php b/system/controllers/prepaid.php
index 9306710d..eb74fb9d 100644
--- a/system/controllers/prepaid.php
+++ b/system/controllers/prepaid.php
@@ -406,7 +406,7 @@ switch ($action) {
$in = ORM::for_table('tbl_transactions')->where('username', $c['username'])->order_by_desc('id')->find_one();
$ui->assign('in', $in);
- sendSMS($c['username'], "*$_c[CompanyName]*\n".
+ sendWhatsapp($c['username'], "*$_c[CompanyName]*\n".
"$_c[address]\n".
"$_c[phone]\n".
"\n\n".
@@ -1050,7 +1050,7 @@ switch ($action) {
$ui->assign('in', $in);
- sendSMS($c['username'], "*$_c[CompanyName]*\n".
+ sendWhatsapp($c['username'], "*$_c[CompanyName]*\n".
"$_c[address]\n".
"$_c[phone]\n".
"\n\n".
diff --git a/system/controllers/register.php b/system/controllers/register.php
index df71b937..7576e90a 100644
--- a/system/controllers/register.php
+++ b/system/controllers/register.php
@@ -18,9 +18,11 @@ use PEAR2\Net\RouterOS;
require_once 'system/autoload/PEAR2/Autoload.php';
+$otpPath = 'system/uploads/sms/';
+
switch ($do) {
case 'post':
-
+ $otp_code = _post('otp_code');
$username = _post('username');
$fullname = _post('fullname');
$password = _post('password');
@@ -41,6 +43,32 @@ switch ($do) {
$msg .= $_L['PasswordsNotMatch'] . '
';
}
+ if(!empty($_c['sms_url'])){
+ $otpPath .= sha1($username.$db_password).".txt";
+ if(file_exists($otpPath) && time()-filemtime($otpPath)>300){
+ 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('phonenumber', $phonenumber);
+ $ui->assign('notify', '
Payment Notification URL, Recurring Notification URL, Pay Account Notification URL
+ +{Lang::T('Payment Notification URL, Recurring Notification URL, Pay Account Notification URL')}
https://dashboard.midtrans.com/settings/vtweb_configurationFinish Redirect URL, Unfinish Redirect URL, Error Redirect URL
+ +{Lang::T('Finish Redirect URL, Unfinish Redirect URL, Error Redirect URL')}
https://dashboard.midtrans.com/settings/vtweb_configurationMust include [text] & [number], it will be replaced.
+Must include [text] & [number], it will be replaced.
BCA | +5410-454-825 | +
Mandiri | +163-000-1855-793 | +
Atas nama | +Ibnu Maksum | +
Bank Central Asia | +5410-454-825 | +
SWIFT/BIC | +CENAIDJA | +
Jakarta | +Indonesia | +
Account Name | +Ibnu Maksum | +