1. Generally in Vtiger 6.4 we create a module and just check / uncheck accordingly , to be able to see module in Customer Portal.
sometime if module not exists in vTiger CRM and we want a custom module without creating it in Vtiger CRM.
$avmod = array_merge(array("Home", 'Transaction'), $avmod);
4. Generally , transaction module contained two function success and cancel , so we need to allowed these two function whenever a request come to access Transaction success and cancel functions.Below condition / Code allowed you to access these function in MYC customer portal. You need to placed these condition inside class Router {}.
else if ($targetmodule == 'Transaction' && isset($_REQUEST['fun']) && $_REQUEST['fun'] == 'success') $mod->get_success(); else if ($targetmodule == 'Transaction' && isset($_REQUEST['fun']) && $_REQUEST['fun'] == 'cancel') $mod->get_cancel();
5. Now create a folder customerportal\modules\Transaction and create a file index.php and place below code
class Transaction extends BaseModule { function get_success() { $root_directory = $GLOBALS['root_dir']; // Associated Transaction AS Deposit , Custom module Exists in vTiger CRM 6.4 $data['module'] = ($this->module == 'Transaction') ? 'Deposit' : ''; $data['contactid'] = $_SESSION["loggeduser"]['id']; $data['sessionid'] = $_SESSION["loggeduser"]['sessionid']; $getway_order_id = $_SESSION["getway_order_id"]; $order_id = isset($_GET['orid']) ? $_GET['orid'] : ''; $payment_method = isset($_GET['pm']) ? $_GET['pm'] : ''; $sparams = array( 'id' => $_SESSION["loggeduser"]['id'], 'module' => ($this->module == 'Transaction') ? 'Deposit' : '', 'sessionid' => $_SESSION["loggeduser"]['sessionid'], 'getway_order_id' => $getway_order_id, 'order_id' => $order_id, 'payment_method' => $payment_method, 'paypal_payer_id' => $payer_id ); //first validate order id $order_info = $GLOBALS["sclient"]->call('get_order_info', array($order_id)); if (isset($order_info) && count($order_info) > 0 && $order_info != "") { $result = $this->do_save_transation($payment_method, $sparams); } if (isset($uresult) && count($uresult) > 0 && $uresult != "") { unset($_SESSION["getway_order_id"]); } if (isset($_SESSION["getway_order_id"])) { unset($_SESSION["getway_order_id"]); } $redirectUrl = 'index.php?module=Deposit&action=index'; header("Location: $redirectUrl"); exit; } public function do_save_transation($payment_method, $sparams) { switch ($payment_method) { case 'Neteller': break; case 'Paypal': break; case 'Skrill': break; case 'Debit/CreditCard': break; default: break; } return $result; } function get_cancel() { $data['module'] = ($this->module == 'Transaction') ? 'Deposit' : ''; $data['contactid'] = $_SESSION["loggeduser"]['id']; $data['sessionid'] = $_SESSION["loggeduser"]['sessionid']; $getway_order_id = $_SESSION["getway_order_id"]; $order_id = isset($_GET['orid']) ? $_GET['orid'] : ''; $payment_method = isset($_GET['pm']) ? $_GET['pm'] : ''; $sparams = array( 'id' => $_SESSION["loggeduser"]['id'], 'module' => ($this->module == 'Transaction') ? 'Deposit' : '', 'sessionid' => $_SESSION["loggeduser"]['sessionid'], 'getway_order_id' => $getway_order_id, 'order_id' => $order_id, 'payment_method' => $payment_method, 'paypal_payer_id' => $payer_id ); $result = $GLOBALS["sclient"]->call('do_cancel_transaction', array($sparams)); if (isset($result) && count($result) > 0 && $result != "") { unset($_SESSION["getway_order_id"]); } if (isset($_SESSION["getway_order_id"])) { unset($_SESSION["getway_order_id"]); } $redirectUrl = 'index.php?module=Deposit&action=index&status='; header("Location: $redirectUrl"); exit; } }