Jump to content
l'indien

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 !
 

Share this post


Link to post
Share on other sites

up !

étant limité en php, ce serais sympa de la part d'un développeur de me donner la solution !

Share this post


Link to post
Share on other sites

tous les développeurs sont en vacance !!?

je demande juste une info ?????

Share this post


Link to post
Share on other sites

Bonjour,

en fait je sais ajouter une nouvelle colonne et le transporteur,

c'est remplacer le nom (ou le N° du transporteur) par une icone ou image .jpg

 

comme je le faisait en v1.5 !

bien cordialement

Share this post


Link to post
Share on other sites

Ce qui enlèverait en complexité ce serait d'utiliser l'icone du transporteur 

Share this post


Link to post
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 !!!

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

Perso je t'aiderais bien mais je déborde de boulot.

Peut-être la semaine prochaine, ça devrait être plus calme.

Share this post


Link to post
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)

Share this post


Link to post
Share on other sites

@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']);
    }

 

Share this post


Link to post
Share on other sites

Bonjour JD440

et merci car cela est plus propre !

je l'ai appliqué et cela fonctionne bien.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

Bonjour Tristan,

Question bête, As-tu vidé ton cache ?

As-tu essayé de mettre l'URL complète de tes images à savoir : https://www.monsite.fr/img/admin/...

Share this post


Link to post
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".

Share this post


Link to post
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 ?

 

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
Guest

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

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

Pour info, au lieu de faire des bidouilles toutes aussi étranges les unes que les autres, vous pouvez utiliser un module pour cela :

 

 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More