Jump to content

Insérer un script Php dans un .tpl ?


Recommended Posts

Bonjour,

J'ai actuellemnt le module Paypal d'installé mais je désire ajouter Mercanet.

Comme je suis en mutualisé chez OVH, j'ai acheté leur "kit" Mercanet.

J'ai effectué la partie "Test" sans problème, mais maintenant je dois insérer la partie script au niveau de ma boutique pour pouvoir afficher le "blocc" carte bancaire au niveau de la page des choix de paiement.

En gros, le script que je dois rajouter ressemble à ça :

#!/usr/local/bin/php
<?php
$amount   = urlencode($_POST[amount]);
$order_id = urlencode($_POST[order_id]);
$login    = 'mon_login';
$url      = "http://paisec.ovh.net/~$login/mercanet/request.cgi";
$params   = "?amount=$amount&order_id=$order_id";
?>
<html>
<head><title>PHP test</title></head>
<body>
<form method=post>
<table>
<tr> <td>reference (order_id)</td><td><input type=text name=order_id value=<?php echo $order_id; ?> ></td>
</tr>
<tr> <td>total commande (amount)</td><td><input type=text name=amount value=<?php echo $amount; ?> ></td>
</tr>
<tr><td colspan=2><input type=submit name=refresh value=refresh></td></tr>
</table>
</form>
<hr>
<?php
if($order_id != '')
{
$query.="$url$params";
echo "
<li>url=$url<br>
<li>ref=$order_id<br>
<li>montant=$amount<br>
<br><li>$query<br>
<center>
";
$myfile=file("$query");
for($index = 0; $index < count($myfile); $index++)
{
 $form = $form . ($myfile[$index]);
}
}
echo $form;
echo "<textarea cols=120 rows=20>$form</textarea>";
?>
</center>
</body>
</html>

(je précise que la partie HTML n'est evidement pas correcte pour afficher les différentes cartes bancaires. Je ferai la modif ensuite.)

 

Mais donc, c'est ce que je dois insérer dans le code. Je pense (à confirmer) que ce code doit ête ajouté dans le fichier order-payment.tpl, à ce niveau ci :

{if $HOOK_PAYMENT}
{if !$opc}<h4>{l s='Please select your preferred payment method to pay the amount of'}&nbsp;<span class="price">{convertPrice price=$total_price}</span> {if $taxes_enabled}{l s='(tax incl.)'}{/if}</h4><br />{/if}
{if $opc}<div id="opc_payment_methods-content">{/if}
 <div id="HOOK_PAYMENT">{$HOOK_PAYMENT}</div>
{if $opc}</div>{/if}
{else}
<p class="warning">{l s='No payment modules have been installed.'}</p>
{/if}

mais je ne vois pas comment insérer mon code (Php + Html) au niveau de ce fichier .tpl ?

 

Merci de votre aide ;)

 

Link to comment
Share on other sites

Merci de ta réponse elkastor :)

Par contre, j'ai un autre souçi.

J'ai fait un lien dans mon fichier .tpl qui redirige vers mon fichier .php

Mais lorsque j'arrive sur le fichier .php, il me dit (forcément) que les variables amount et order_id sont inconnues...

Et donc, comment faire pour récupérer ces variables ?

J'ai essayé avec un $_SESSION, mais sans résultat non plus...

Comment fait-on sous Prestashop pour récupérer le montant de la commande en cours, et l'id de la commande ?

Merci beaucoup

Link to comment
Share on other sites

Dans le module Paypal, j'y ai vu ce bout de code :

public function hookPayment($params){
...
$montant  = number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 3),$currency),2,'.','');

Mais je ne vois pas où cette fonction est appelée, et donc je ne vois pas comment cette variable $params est remplie... :(

 

ET j'ai cru lire que $cart est une variable globale ? Donc accessible dans mon script (en utilisant global $cart; en début de script) mais ça ne marche pas non plus :

<?php
global $cart;
$amount = urlencode($cart->getOrderTotal());
...

Il me met le message d'erreur suivant :

Fatal error: Call to a member function getOrderTotal() on a non-object
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...