Jump to content

ajouter une icone transporteur dans la liste des commande


Recommended Posts

Bonjour à tous !

sur ma nouvelle version 1.6.1.1

je viens d'ajouter le N° du transporteur dans la liste des commandes.

 

en modifiant dans ../controllers/admin/AdminOrdersController.php

 

            'id_carrier' => array(
                'title' => $this->l('ID'),
                'align' => 'center',
                'class' => 'fixed-width-xs'
            ),
cela fonctionne ! c'est à dire que le N° des transporteur s'affichent

mais si j'ajoute le même code que en V1.5 rien ne s'affiche...

 

 

en version 1.5 ceci fonctionnait mais plus maintenant :

 

          'id_carrier' => array(
            'title' => $this->l('Type envoi'),
            'width' => 50,
            'align' => 'center',
            'type' => 'bool',
            'tmpTableFilter' => true,
            'icon' => array(
                0 => 'blank.gif',
                3 => 'intailleurs.gif',
                6 => 'retraitmag.gif',
                7 => 'col_dom.gif',
                8 => 'col_tom.gif',
                14 => 'col_inter.gif',
                16 => 'lmm.jpg',
                34 => 'socolissimo.png',
                25 => 'colfrance.gif',
                36 => 'lmm_inter.gif',
                35 => 'socolissimo_pointR.png'
            ),

 

est ce 'icon' => array( qui bloque ???

 

 

merci de l'info !
 

Link to comment
Share on other sites

Bonjour BeComWeb !

j'ai essayé en ajoutant en dessus de $this->fields_list :

 

        $this->fieldImageSettings = array(
            'name' => 'logo',
            'dir' => 's'
        );
        $this->fields_list = array(
 

et ce qui suit dans la liste :

 

            'image' => array(
                'title' => $this->l('Logo'),
                'align' => 'center',
                'image' => 's',
                'class' => 'fixed-width-xs',
                'orderby' => false,
                'search' => false
            ),
 

 

mais la colonne 'logo' reste vide !!!

Link to comment
Share on other sites

A ta place je chercherais du côté des fonctions de callback comme utilisé pour Nouveau client : oui/non (printNewCustomer) ou l'affichage des boutons de facture/BL (printPDFIcons).

 

Tu crées ta propre fonction de récupération du logo que tu mets ensuite dans le paramètre callback

Link to comment
Share on other sites

  • 2 months later...

Bonjour Becomweb,
 
voici la déclaration de ma colonne :

'id_carrier' => array(
	'title' => $this->l('Type envoi'),
	'width' => 60,
        'type' => 'bool',
        'prefix' => '<b style="color:#ffffff;background-color:#f5af1a;">',
	'suffix' => '</b>',
        'orderby' => false,
        'callback' => 'printImageCarrier'
),

et voici ma fonction :

    public function printImageCarrier($id_order, $tr)
    {
	$imagecarrier = array (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,'LETTRE SUIVI',35,36,37,38,39,40,41,42,43,'LET. SV INTER','COLISS. INT',46,47,'COLISS DOM','COLISS TOM',50,51,'** MAZET **',53,'Socolissimo','Colissimo FR','Socolissimo','RETRAIT MAG',58,59);
	$tr['id_carrier'] = $imagecarrier[$tr['id_carrier']];
	return ($tr['id_carrier']);
    }

et voici ce que cela donne en pièce jointe

 

 

 

 

je ne peux transformer que le N° du transporteur en texte mais pas en url d'image !!!

je n'y arrive pas !

 

au secours !! un developpeur charitable !!

post-11451-0-89300000-1506089560_thumb.jpg

Edited by l'indien (see edit history)
Link to comment
Share on other sites

EUREKA !

 

 

étant limité en php j'ai un peu galéré mais c'est bon !

 

donc je déclare mes colonnes comme ceci.

pour le transporteur :

'id_carrier' => array(
   'title' => $this->l('Type envoi'),
   'type' => 'select',
   'orderby' => false,
   'callback' => 'printImageCarrier'
),

pour le paiement :

'module' => array(
	'title' => $this->l('Payment: '),
	'type' => 'select',
	'orderby' => false,
	'callback' => 'printImagePayment'   
),	

et enfin les deux fonctions appelées :

    public function printImagePayment($id_order, $tr)
    {
		if ($tr['module'] == 'cdiscount') { $tr['module'] = '<img src="../img/admin/cdiscount.gif" style="width:62 px"/>'; }
		if ($tr['module'] == 'systempay') { $tr['module'] = '<img src="../img/admin/systempay.gif" style="width:62 px"/>'; }
		if ($tr['module'] == 'paypal')    { $tr['module'] = '<img src="../img/admin/paypal.gif" style="width:62 px"/>'; }
		if ($tr['module'] == 'cheque')    { $tr['module'] = '<img src="../img/admin/cheque.gif" style="width:62 px"/>'; }
		if ($tr['module'] == 'amazon')    { $tr['module'] = '<img src="../img/admin/amazon.gif" style="width:62 px"/>'; }
		if ($tr['module'] == 'bankwire')    { $tr['module'] = '<img src="../img/admin/virement.gif" style="width:62 px"/>'; }
		if ($tr['module'] == 'priceminister')    { $tr['module'] = '<img src="../img/admin/priceminister.gif" style="width:62 px"/>'; }
	    return ($tr['module']);
    }
 
 
    public function printImageCarrier($id_order, $tr)
    {
		$imagecarrier = array (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,
		                       '<img src="../img/admin/lmm.jpg" style="width:80%"/>',
							   35,36,37,38,39,40,41,42,43,
		                       '<img src="../img/admin/lmm_inter.gif" style="width:80%"/>',
		                       '<img src="../img/admin/col_inter.gif" style="width:80%"/>',
							   46,47,
		                       '<img src="../img/admin/col_dom.gif" style="width:80%"/>',
		                       '<img src="../img/admin/col_tom.gif" style="width:80%"/>',
							   50,51,
		                       '<img src="../img/admin/intailleurs.gif" style="width:80%"/>',
							   53,
		                       '<img src="../img/admin/socolissimo.png" style="width:80%"/>',
		                       '<img src="../img/admin/colfrance.gif" style="width:80%"/>',
		                       '<img src="../img/admin/socolissimo.png" style="width:80%"/>',
		                       '<img src="../img/admin/retraitmag.gif" style="width:80%"/>',
							  );

		$tr['id_carrier'] = $imagecarrier[$tr['id_carrier']];
	    return ($tr['id_carrier']);
    }

voila !

 

 

Un grand merci à BeComWeb qui m'a mis sur la piste des fonctions de callback !!!

Edited by l'indien (see edit history)
Link to comment
Share on other sites

  • 2 months later...

@l'indien

Je sais pas si tu as réussit mais tu pourrais essayer

public function printImageCarrier($id_order, $tr)
    {
	$imagecarrier = array (
		34 => '<img src="../img/admin/LETTRE SUIVI.gif" style="width:80%"/>',
		44 => '<img src="../img/admin/LET. SV INTER.gif" style="width:80%"/>',
		45 => '<img src="../img/admin/COLISS. INT.gif" style="width:80%"/>',
		46 => '<img src="../img/admin/COLISS DOM.gif" style="width:80%"/>',
		47 => '<img src="../img/admin/COLISS TOM.gif" style="width:80%"/>',
		52 => '<img src="../img/admin/** MAZET **.gif" style="width:80%"/>',
		54 => '<img src="../img/admin/Socolissimo.gif" style="width:80%"/>',
		55 => '<img src="../img/admin/Colissimo FR.gif" style="width:80%"/>',
		56 => '<img src="../img/admin/Socolissimo.gif" style="width:80%"/>',
		57 => '<img src="../img/admin/RETRAIT MAG.gif" style="width:80%"/>';
	$tr['id_carrier'] = $imagecarrier[$tr['id_carrier']];
	return ($tr['id_carrier']);
    }

 

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Pour ma part, j'ai ajouté une colonne numéro de suivi de la commande. Lorsque j'ai un numéro de suivi il m'affiche le numéro impeccable et lorsque j'en ai pas il ne m'affiche rien. Tout ce qu'il y a de plus normal.

Je cherche maintenant à récupérer le lien du numéro de suivi de la commande afin de remplacer mon texte dans ma colonne par le lien directement.

Je pense qu'il faut que je créé une nouvelle fonction mais je ne sais pas quoi mettre dedans.

Auriez-vous une idée ?

D'avance merci

Link to comment
Share on other sites

  • 1 year later...

Salut :)

Le sujet date un peu mais bon je demande quand même on sait jamais !

Je veux également afficher l’icône des transporteurs à ma liste des commandes, seulement en utilisant le même code que vous (et en ayant bien sur changer le chemin d'accès aux photos, et les numéros de transporteur qui me sont propre) la colonne s'affiche mais pas le logo du transporteur..

Voici mon code

initialisation colonne + callback de la fonction:

        $this->fields_list = array_merge($this->fields_list, array(
          'id_carrier' => array(
                'title' => $this->l('Transporteur'),
                'type' => 'select',
                'order_key' => 'false',
                'callback' => 'printImageCarrier'
            ),
        ));

fonction:

    public function printImageCarrier($id_order, $tr)
        {
          $imagecarrier = array (
              207 => '<img src="../img/s/207.jpg" style="width:80%"/>',
              210 => '<img src="../img/s/210.jpg" style="width:80%"/>',
              416 => '<img src="../img/s/416.jpg" style="width:80%"/>',
              444 => '<img src="../img/s/444.jpg" style="width:80%"/>',
              448 => '<img src="../img/s/448.jpg" style="width:80%"/>',
              449 => '<img src="../img/s/449.jpg" style="width:80%"/>',
              450 => '<img src="../img/s/450.jpg" style="width:80%"/>',
              455 => '<img src="../img/s/320.jpg" style="width:80%"/>',
              456 => '<img src="../img/s/207.jpg" style="width:80%"/>',
              457 => '<img src="../img/s/210.jpg" style="width:80%"/>',
              458 => '<img src="../img/s/274.jpg" style="width:80%"/>',
              459 => '<img src="../img/s/444.jpg" style="width:80%"/>',
              460 => '<img src="../img/s/440.jpg" style="width:80%"/>',
              461 => '<img src="../img/s/411.jpg" style="width:80%"/>',
              462 => '<img src="../img/s/446.jpg" style="width:80%"/>',
              463 => '<img src="../img/s/443.jpg" style="width:80%"/>',
              464 => '<img src="../img/s/443.jpg" style="width:80%"/>',
     	  );

          $tr['id_carrier'] = $imagecarrier[$tr['id_carrier']];
          return ($tr['id_carrier']);
        }

Je bloque depuis plusieurs jours là dessus malheureusement..
Si quelqu'un pourrait m'éclairer ça serait pas de refus !
Merci d'avance !

Link to comment
Share on other sites

Bonsoir @julianbaros,

Tout d'abord merci pour ta réponse si rapide !

J'ai vidé le cache du site + du navigateur, rien n'a changé.

Quant à l'url je l'ai d'abord testé sur le navigateur, il fonctionne et m'affiche l'image (logique ahah). Ensuite quand je l'ai mis dans mon tableau mais rien ne change, j'ai le même résultat qu'avec un "img src".

Link to comment
Share on other sites

essai avec ça :

public function printImageCarrier($id_order, $tr)
        {
          $imagecarrier = array (
              207 => '<img src="../img/s/207.jpg" style="width:80%"/>',
              210 => '<img src="../img/s/210.jpg" style="width:80%"/>',
              416 => '<img src="../img/s/416.jpg" style="width:80%"/>',
              444 => '<img src="../img/s/444.jpg" style="width:80%"/>',
              448 => '<img src="../img/s/448.jpg" style="width:80%"/>',
              449 => '<img src="../img/s/449.jpg" style="width:80%"/>',
              450 => '<img src="../img/s/450.jpg" style="width:80%"/>',
              455 => '<img src="../img/s/320.jpg" style="width:80%"/>',
              456 => '<img src="../img/s/207.jpg" style="width:80%"/>',
              457 => '<img src="../img/s/210.jpg" style="width:80%"/>',
              458 => '<img src="../img/s/274.jpg" style="width:80%"/>',
              459 => '<img src="../img/s/444.jpg" style="width:80%"/>',
              460 => '<img src="../img/s/440.jpg" style="width:80%"/>',
              461 => '<img src="../img/s/411.jpg" style="width:80%"/>',
              462 => '<img src="../img/s/446.jpg" style="width:80%"/>',
              463 => '<img src="../img/s/443.jpg" style="width:80%"/>',
              464 => '<img src="../img/s/443.jpg" style="width:80%"/>';
         

          $tr['id_carrier'] = $imagecarrier[$tr['id_carrier']];
          return ($tr['id_carrier']);
        }

 

 

IL ME SEMBLE QU'IL N'Y A PAS DE POINT VIRGULE A LA FIN DE LA LISTE MAIS UNE VIRGULE

ET UN ")" MAL PLACE VOIR EN TROP ?

NON ?

 

Link to comment
Share on other sites

Bonjour @l'indien,

C'est ce que je pensais aussi à la base, seulement cela me met une fatal error. En mettant les messages d'erreurs du mode dev via le define.inc.php il me dit justement qu'il faut que j'enlève le ";" à la fin et que je le remplace par une simple "," puis de rajouter ");" .
En faisant cela aucune erreur n'est affichée seulement les logos ne sont pas affichés dans la colonne.

Link to comment
Share on other sites

Je veux bien te filer un coup de main.. c'est quoi ta version et y'a moyen d'avoir l'url et un identifiant pour vérifier ça ?

y'a moyen de faire plus simple sans avoir ton tableau de correspondance en dur aussi, aller chercher la vrai image du transporteur dans la base ce n'est pas compliqué, sinon puisque c'est de la bidouille, modifier le code tpl pour afficher l'image avec l'ID du transporteur dans un repertoire image dédiée à cet effet et plus besoin de array à créer et remplir

Link to comment
Share on other sites

  • 4 weeks later...

Salut,

Désolé pour ma longue absence, j'avais beaucoup de travail et ai donc laissé cette partie de côté. Je comprendrais totalement que vous ne répondiez plus après cette longue attente.

Je suis en version 1.7.5, je n'ai malheureusement pas le droit de donner l'url ainsi qu'un identifiant car je travail pour quelqu'un et je n'ai pas l'autorisation de les fournir. 

L'utilisation du tableau me semble bien car je n'ai pas les images dans la base de donnée mais seulement dans un répertoire de mon site. Je me demande si il ne faudrait pas seulement adapter le code fourni au dessus pour la version 1.6 en version 1.7 (par exemple essayer d'utiliser un Tools:: plutôt qu'un simple return)

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...