jeanmarie
27 May 2004, 12:26
Hello,
Comment rajouter les logos en face des moyens de paiement ???
merci
jm
fissiaux
27 May 2004, 19:01
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> <?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
27 May 2004, 22:44
merci j'essaye de bricoler et vous tiens au courant
jm
JeanLuc
28 May 2004, 08:32
CQFD
Clair, net et précis...
Merci Fissiaux... et Benoit
jeanmarie
28 May 2004, 12:13
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]