Jump to content

Need guidance on converting TPL to PHP


PSM

Recommended Posts

Hi guys,

 

I need some help from you pro's please with converting code from a TPL template file to PHP.

 

My client has payment gateway scripts in an ecommerce site that he wants to offer to other merchants.  The code currently is in numerous TPL files (currently being used in Opencart).

 

What is involved in converting to plain ol' PHP?  Do I need the TPL files at all?  Can I rename the TPL extension to PHP as it looks like they contain PHP code??

 

 

Example of one of the TPL's is below:

 

 

<form action="<?php echo $action; ?>" method="post" id="checkout">
  <input type="hidden" name="instId" value="<?php echo $merchant; ?>" />
  <input type="hidden" name="cartId" value="<?php echo $order_id; ?>" />
  <input type="hidden" name="amount" value="<?php echo $amount; ?>" />
  <input type="hidden" name="currency" value="<?php echo $currency; ?>" />
  <input type="hidden" name="desc" value="<?php echo $description; ?>" />
  <input type="hidden" name="name" value="<?php echo $name; ?>" />
  <input type="hidden" name="address" value="<?php echo $address; ?>" />
  <input type="hidden" name="postcode" value="<?php echo $postcode; ?>" />
  <input type="hidden" name="country" value="<?php echo $country; ?>" />
  <input type="hidden" name="tel" value="<?php echo $telephone; ?>" />
  <input type="hidden" name="email" value="<?php echo $email; ?>" />
  <input type="hidden" name="testMode" value="<?php echo $test; ?>" />
</form>
<div class="buttons">
  <table>
    <tr>
      <td align="left"><a onclick="location = '<?php echo $back; ?>'" class="button"><span><?php echo $button_back; ?></span></a></td>
      <td align="right"><a onclick="$('#checkout').submit();" class="button"><span><?php echo $button_confirm; ?></span></a></td>
    </tr>
  </table>
</div>

 

 

I also have 3 PHP files as well, which look like (example):

 

<?php
class ControllerPaymentOnlineVoucher extends Controller {
protected function index() {

	$this->data['button_confirm'] = $this->language->get('button_confirm');
	$this->data['button_back'] = $this->language->get('button_back');

	$this->load->model('checkout/order');

	$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);

	$this->load->library('encryption');

	$this->data['action'] = 'https://www.domain-removed.com/purchaseAndRedeem.php';

	$this->data['merchant'] = $this->config->get('onlineVoucher_merchant');
	$this->data['order_id'] = $order_info['order_id'];
	$this->data['amount'] = $order_info['total'];
	$this->data['currency'] = $order_info['currency'];
	$this->data['description'] = $this->config->get('config_store') . ' - #' . $order_info['order_id'];
	$this->data['name'] = $order_info['payment_firstname'] . ' ' . $order_info['payment_lastname'];

	if (!$order_info['payment_address_2']) {
		$this->data['address'] = $order_info['payment_address_1'] . ', ' . $order_info['payment_city'] . ', ' . $order_info['payment_zone'];
	} else {
		$this->data['address'] = $order_info['payment_address_1'] . ', ' . $order_info['payment_address_2'] . ', ' . $order_info['payment_city'] . ', ' . $order_info['payment_zone'];
	}

	$this->data['postcode'] = $order_info['payment_postcode'];

	$payment_address = $this->customer->getAddress($this->session->data['payment_address_id']);

	$this->data['country'] = $payment_address['iso_code_2'];
	$this->data['telephone'] = $order_info['telephone'];
	$this->data['email'] = $order_info['email'];
	$this->data['test'] = $this->config->get('onlineVoucher_test');

	$this->data['back'] = $this->url->https('checkout/payment');

	$this->id       = 'payment';
	$this->template = $this->config->get('config_template') . 'payment/onlineVoucher.tpl';

	$this->render();

}

public function callback() {

	if (isset($this->request->post['callbackPW']) && ($this->request->post['callbackPW'] == $this->config->get('onlineVoucher_password'))) {
		$this->language->load('payment/onlineVoucher');

		$this->data['title'] = sprintf($this->language->get('heading_title'), $this->config->get('config_store'));

		if (!isset($this->request->server['HTTPS']) || ($this->request->server['HTTPS'] != 'on')) {
			$this->data['base'] = HTTP_SERVER;
		} else {
			$this->data['base'] = HTTPS_SERVER;
		}

		$this->data['charset'] = $this->language->get('charset');
		$this->data['language'] = $this->language->get('code');
		$this->data['direction'] = $this->language->get('direction');

		$this->data['heading_title'] = sprintf($this->language->get('heading_title'), $this->config->get('config_store'));

		$this->data['text_response'] = $this->language->get('text_response');
		$this->data['text_success'] = $this->language->get('text_success');
		$this->data['text_success_wait'] = sprintf($this->language->get('text_success_wait'), $this->url->https('checkout/success'));
		$this->data['text_failure'] = $this->language->get('text_failure');
		$this->data['text_failure_wait'] = sprintf($this->language->get('text_failure_wait'), $this->url->https('checkout/payment'));

		$this->data['button_continue'] = $this->language->get('button_continue');

		if (isset($this->request->post['transStatus']) && $this->request->post['transStatus'] == 'Y') { 
			$this->load->model('checkout/order');

			$this->model_checkout_order->confirm($this->request->post['cartId'], $this->config->get('onlineVoucher_order_status_id'));

			$message = '';

			if (isset($this->request->post['transId'])) {
				$message .= 'transId: ' . $this->request->post['transId'] . "\n";
			}

			if (isset($this->request->post['transStatus'])) {
				$message .= 'transStatus: ' . $this->request->post['transStatus'] . "\n";
			}

			if (isset($this->request->post['countryMatch'])) {
				$message .= 'countryMatch: ' . $this->request->post['countryMatch'] . "\n";
			}

			if (isset($this->request->post['AVS'])) {
				$message .= 'AVS: ' . $this->request->post['AVS'] . "\n";
			}	

			if (isset($this->request->post['rawAuthCode'])) {
				$message .= 'rawAuthCode: ' . $this->request->post['rawAuthCode'] . "\n";
			}	

			if (isset($this->request->post['authMode'])) {
				$message .= 'authMode: ' . $this->request->post['authMode'] . "\n";
			}	

			if (isset($this->request->post['rawAuthMessage'])) {
				$message .= 'rawAuthMessage: ' . $this->request->post['rawAuthMessage'] . "\n";
			}	

			if (isset($this->request->post['wafMerchMessage'])) {
				$message .= 'wafMerchMessage: ' . $this->request->post['wafMerchMessage'] . "\n";
			}				

			$this->model_checkout_order->update($this->request->post['cartId'], $this->config->get('onlineVoucher_order_status_id'), $message, FALSE);

			$this->data['continue'] = $this->url->https('checkout/success');

			$this->template = $this->config->get('config_template') . 'payment/onlineVoucher_success.tpl';
		  
  			$this->render();				
		} else {
    			$this->data['continue'] = $this->url->https('checkout/payment');

			$this->template = $this->config->get('config_template') . 'payment/onlineVoucher_failure.tpl';
		  
  			$this->render();					
		}
	}
}
}
?>

 

 

 

Any guidance would be highly appreciated...

 

Phil

Link to comment
Share on other sites

Could get messy because the extension is hard coded into the app:

 

$this->template = $this->config->get('config_template') . 'payment/onlineVoucher_success.tpl';

 

You'd have to change all these occurrences of the extension .tpl to .php.

 

I guess a clever search and replace would work fine. But why do you need to change the extension anyway? If you are going to pass this along to other opencart users then there isn't a problem. If not, then using TPL files will be your last worry. You have to worry about making this code less dependent on other components in opencart.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.