Aide - Recherche - Membres - Calendrier
Version complète : [résolu]Pb logo paiement
Forum osCommerce-fr > Adapter OsCommerce MS2 > Modules de Paiement et de Livraison
jeanmarie
Hello,

Comment rajouter les logos en face des moyens de paiement ??? confused.gif


user posted image


merci
jm
fissiaux

Pour la réponse, je vais m'inspirer de ce qui a été fait par Benoît ESTRADE pour le module SPPLUS. Merci donc à lui.

La page concernée pour l'affichage des logos est bien entendu checkout_payment.php. Plutôt que de tester en dur chaque mode de paiement et donc d'afficher une image en fonction du mode de paiement, il a préféré intervenir au niveau de l'objet payment (objet au sens programmation).

Chaque méthode de paiement est un objet décrit au sein d'une classe (ce sont les fichiers /catalog/includes/modules/payment). Il a rajouté au sein de cette classe, une méthode (au sens programmation objet) qui s'appelle icon. Dans la fonction d'initialisation de l'objet (celle qui porte le même nom que la classe), il a rajouté une instruction du type :

CODE
$this->icon = DIR_WS_ICONS . 'monimage.gif';


Exemple pour souffler : la classe cod.php

CODE
 class cod {
   var $code, $title, $description, $enabled;

// class constructor
   function cod() {
     global $order;

     $this->code = 'cod';
     $this->title = MODULE_PAYMENT_COD_TEXT_TITLE;
     $this->description = MODULE_PAYMENT_COD_TEXT_DESCRIPTION;
     $this->sort_order = MODULE_PAYMENT_COD_SORT_ORDER;
     $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true : false);


il rajoute juste derrière ce code (donc à l'intérieur de la fonction cod, qui porte le même nom que la classe cod), il rajoute :

CODE
$this->icon=DIR_WS_ICONS . 'imagecod.gif';


Voilà pour la création.


On revient dans checkout_payment. Comment est affichée la liste des méthodes de paiement ? En fait par l'instruction :

CODE
 $selection = $payment_modules->selection();


Donc la fonction selection de l'objet paiement est appelé. C'ets par elle que l'on va ramené l'image du moyen de paiement (pour nous la propriété icon, donc).

On retourne sur le fichier de paiement /catalog/includes/modules/payment/xxxx.

On cherche la fonction selection. A la base, on devrait avoir :

CODE
   function selection() {
     return array('id' => $this->code,
                  'module' => $this->title);
   }


On l'adapte pour renvoyer aussi la propriété icon, donc notre image :

CODE
   function selection() {
     return array('id' => $this->code,
                  'module' => $this->title,
   'icon' => $this->icon);
   }


Maintenant la fonction selection renverra l'image. On a donc plus qu'à l'afficher. Et donc on retourne dans checkout_payment.php.

On cherche le code :

CODE
                   <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                   <td class="main" colspan="3"><b><?php echo $selection[$i]['module']; ?></b></td>
                   <td class="main" align="right">


que l'on remplace par :

CODE
                   <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                   <td class="main" colspan="3"><b><?php echo $selection[$i]['module']; ?></b>&nbsp;<?php echo tep_image($selection[$i]['icon'], $selection[$i]['module']); ?></td>
                   <td class="main" align="right">



Merci donc à l'auteur Benoit.

J'espère ne pas avoir été trop barbant dans ma réponse.
jeanmarie
merci j'essaye de bricoler et vous tiens au courant

jm
JeanLuc
arrow.gif CQFD
Clair, net et précis... smile.gif Merci Fissiaux... et Benoit wink.gif
jeanmarie
QUOTE
On retourne sur le fichier de paiement /catalog/includes/modules/payment/xxxx.

On cherche la fonction selection. A la base, on devrait avoir :


CODE 
   function selection() {
     return array('id' => $this->code,
                  'module' => $this->title);
   }



On l'adapte pour renvoyer aussi la propriété icon, donc notre image :


CODE 
   function selection() {
     return array('id' => $this->code,
                  'module' => $this->title,
   'icon' => $this->icon);
   }


merci les gars j'avais oublié cette étape

bye

[edit fissiaux : merci de mettre résolu la prochaine fois]
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2024 Invision Power Services, Inc.