Welcome, Guest. Please login or register.
Did you miss your activation email?
27 June 2017 à 23:36:42
Home Help Search Login Register
News:

[EN] [PL] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU]
+  Forum de Plici, solution ecommerce open source
|-+  Plici Open Source Ecommerce Solution
| |-+  Developers
| | |-+  [Résolu] ajout de champ pour image
« previous next »
Pages: [1] 2 3 ... 5 Print
Author Topic: [Résolu] ajout de champ pour image  (Read 33547 times)
vini
Newbie
*
Posts: 44



View Profile Email
[Résolu] ajout de champ pour image
« on: 19 June 2007 à 00:44:38 »

Bonjour,
j'ai besoin d'ajouter un champ lors de l'importation de donné  via les fichier csv.
Habituellement, lors de l'importation, il n'est pas possible de mettre des images. Ce que j'aimerais faire, c'est mettre un champ ou l'utilisateur choisi l'image correspondant au produit et le l'affichage sur le site se fait automatiquement...

J'ai deja modifier le fichier "import.tpl" pour afficher une colonne en fin de tableau ou l'utilisateur peut choisir son image avec un "input type=fichier", mais apres, je ne comprends pas le code plus bas dans la page "import.tpl" qui fait le traitement...
s'il vous plait, j'apprécierais vraiment votre aide... Cheesy

merci

ps:j'ai deja posté un sujet de ce genre, mais je crois ke je me suis tromper de categorie, alors me voila dans developpement... Smiley
« Last Edit: 28 August 2007 à 14:01:11 by nicolas_s » Logged
nicolas_s
Administrator
Hero Member
*****
Posts: 688



View Profile WWW
Re : ajout de champ pour image
« Reply #1 on: 19 June 2007 à 08:32:44 »

Bonjour vini,

Pourrais tu te présenter dans la section Présentation.

Concernant le traitement de l'image lors d'un import. Cette fonctionnalité n'a pas été développée à la création de cette méthode.
PLICI a été développé selon le modèle M(odèle) V(ue) C(controleur). Nous avons donc dissocié le traitement de l'affichage.
Il te faut donc modifier le fichier template import.tpl. Mais cela n'aura d'effet que sur l'affichage. Le traitement est effectué par le fichier php /core/entrees/admin_sites/import_export/import.php. Cela t'amènera peut être à modifier une classe php.

Pour un de nos clients, j'avais du développer un morceau de code php qui transferrait les produits(avec les images) de son ancien site vers le nouveau. Si tu veux, je peux le mettre à disposition pour que nous regardions ensemble comment l'améliorer.

Cela te convient-il ?

Nicolas

PS:J'ai indiqué dans l'autre post que le reste de la discution venait sur ce sujet.


Logged

Envie de devenir partenaire de Plici ?
http://www.pliciweb.com.

Vous cherchez un partenaire de Plici ?
http://www.plici.net/l1/p368-Partenaires.html
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #2 on: 19 June 2007 à 19:03:15 »

Bonjour,
merci pour les precision pour le traitement des importations, je ne voyais vraiment pas ou le traitement se faisait ( Cheesy), mais maintenant, je vais essayer de bien regarder le code...
Je vous ferais part de toutes amelioration possible (reussi...^^).

Sans quoi, pour le code que tu as deja developper, je veux bien qu'on le regarde ensemble.

et puis ok pour la presentation, j'y cour!!! Smiley
Logged
nicolas_s
Administrator
Hero Member
*****
Posts: 688



View Profile WWW
Re : ajout de champ pour image
« Reply #3 on: 20 June 2007 à 08:47:01 »

Bonjour vini.

J'ai regardé ce que j'avais fait, et il me semble qu'il y a plus simple, notamment en utilisant l'outil d'importation. J'ai vérifié rapidement, et il me semble qu'en modifiant un seul fichier, tu devrais pouvoir t'en sortir très facilement.
Je t'indique les grandes lignes. Je pars du principe, qu'il existe une colonne dans ton fichier excel contenant le chemin de ton image comme par exemple c:\images\produit_1.jpg.

  • 1) Sélectionner la colonne comme chemin d'image. Pour cela il faut modifier core/internal_components/admin_sites/import_export/importproductcsv.class.php
    • L 115: Ajouter:
      Code:
      $this->m_supported_data_types['f_psl_picture']  = "Image";
    • L 132: Ajouter:
      Code:
      $this->m_default_data_types_values['f_psl_picture']  = "";
  • 2) Importer l'image lors de l'importation du produit. Dans la méthode xInsertOrUpdate, tu observera que durant l'importation L647 ou la mise à jour L671, nous utilisons une variable qui indique une image vide $this->m_file_picture_array_empty. Après quelques tests ($p_array_to_insert['f_psl_picture'] != "", le fichier $p_array_to_insert['f_psl_picture'] existe bien, ...), tu dois remplacer cette variable par un tableau de la forme
    Code:
    $p_picture['name'] = 'image.jpg';
    $p_picture['tmp_name'] = $p_array_to_insert['f_psl_picture'];
    $p_picture['type'] = 'image/jpg'; // Ou gif a toi de faire la détection
    $p_picture['size'] = filesize($p_picture['tmp_name']);
    $p_picture['error'] = 0;

Voila, je pense t'avoir donné 95% du travail, il ne te reste plus qu'a broder autour Smiley

En tout cas, lorsque tu aura fini de l'intégrer, je suis preneur de l'implémentation pour l'intégrer dans la prochaine version de PLICI en te donnant tous les honneurs qui te seront dus Smiley

Nicolas
Logged

Envie de devenir partenaire de Plici ?
http://www.pliciweb.com.

Vous cherchez un partenaire de Plici ?
http://www.plici.net/l1/p368-Partenaires.html
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #4 on: 20 June 2007 à 19:41:11 »

Bonjour nicolas,
merci pour ce post, apparement, sa a l'air plus simple que la solution que j'envisageais (vue qu'il n'y a qu'un seul fichier a modifier... Tongue).

Cependant, j'ai un probleme avec mon importation. Quand je clique sur l'onglet importation, c'est une page blanche qui se charge, et non pas la page de demande de fichier csv.
Je cherche la cause de ce probleme (surement moi qui ai effacer ou ecrit par erreur dans la page import.tpl... Shocked) et des que jel'ai regler, je commence l'implementation du code et je te tiens au courant... Wink

merci,++
Logged
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #5 on: 21 June 2007 à 01:59:08 »

ayééééé!!!!!!!  Cheesy
j'ai enfin reussi a trouver mon erreur ( :Smiley )

je m'obstinais a chercher dans import.tpl, mais l'erreure se trouvait dans import.php. ( :Smiley)
donc maintenant que j'ai enfin reussi a avoir la page d'importation, je vais pouvoir faire la manip que tu mas decrite...^^

jvous tiens au courant...

++
Logged
nicolas_s
Administrator
Hero Member
*****
Posts: 688



View Profile WWW
Re : ajout de champ pour image
« Reply #6 on: 21 June 2007 à 08:32:20 »

Salut vini,
J'attend avec impatience tes premiers retours Smiley

Nicolas
Logged

Envie de devenir partenaire de Plici ?
http://www.pliciweb.com.

Vous cherchez un partenaire de Plici ?
http://www.plici.net/l1/p368-Partenaires.html
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #7 on: 21 June 2007 à 21:37:24 »

Salut nicolas,

voila, je me posais une question, comment est fait le traitement pour les images (que je vais mettre et celles qui sont par defaut)?
Je veux dire, est ce qu'elle sera enregistrée dans la base de donnée (le chemin)?

Je me suis amuser a chercher dans la base de donnée dans la table "t_product*" et je n'ai pas trouver de champ genre (pma_img ou quoi que se soit)...,donc je me suis juste poser cette question koi  Huh
De plus, lorsque jeconsulte la liste des produits que j'ai sur mon site, je me rends compte que par defaut, les produits se voient attribuer une image...qui ne sont pas dans la base de donnée (a moins que j'ai mal regarder...  Shocked )

sans quoi, je continu de broder...  Grin jte tiendrais au courant  Smiley

++
Logged
stephanet
Membre editeur de la solution Plici
Administrator
Hero Member
*****
Posts: 2047


stephane.trichet@free.fr
View Profile WWW Email
Re : ajout de champ pour image
« Reply #8 on: 22 June 2007 à 07:58:43 »

Bonjour,

Je me glisse un peu dans la conversation Smiley Hé oui, ça sert à ça un forum !! Smiley

Alors, un produit est composé d'un t_product_master qui est lui même composé d'un (ou plusieurs) t_productslave.

En clair :
 t_productmaster = les informations du produit génériques (sans référence et tarif par exemple)
 t_productslave = les informations de chaque déclinaison de ce produit (permet de gérer les déclinaisons d'un produit, un t-shirt XL, L, S et de connaître la référence et le pris de chacun)

Pour les expert t_productmaster a une relation {1,N} avec t_productslave (rien de sale, une relation très seine).

Donc, c'est dans le t_productslave que tu vas trouver l'information, voici les champs :
- psl_pic_id_medium
- psl_pic_id_little
- psl_pic_id_full

Pour informaiton, voici une petite décomposition de psl_pic_id_medium
psl = c'est pour le nom de la table courante (ProductSLave)
pic = c'est pour la table avec la clef étrangère (t_PICture)
id_medium   = nom du champ

Donc, dans la table t_picture, tu trouveras les id mentionné dans psl_pic_id_medium, psl_pic_id_little, psl_pic_id_full.

Voilà, ceci explique-t-il cela ?

Si cette réponse te convient, peux tu la saisir dans le Wiki pour qu'elle profite à d'autres personnes ?


Stéphane,
« Last Edit: 22 June 2007 à 08:00:27 by stephanet » Logged

PliciWeb Solutions : http://www.pliciweb.com.
nicolas_s
Administrator
Hero Member
*****
Posts: 688



View Profile WWW
Re : ajout de champ pour image
« Reply #9 on: 22 June 2007 à 08:36:36 »

Salut vini, je pense que la réponse de stéphane doit répondre à ta question d'architecture du site.

Concernant l'image par défaut des produits, tu la trouveras dans l'onglet:
Personnalisation->Aspect->Graphisme.
Il te suffit ensuite de sélectionner Images et polices->produit sans images->pas de photo (doit être une image gif) et mettre une nouvelle image.


Et si tu as d'autres points bloquants n'hésite pas a nous les communiquer.

Nicolas
Logged

Envie de devenir partenaire de Plici ?
http://www.pliciweb.com.

Vous cherchez un partenaire de Plici ?
http://www.plici.net/l1/p368-Partenaires.html
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #10 on: 23 June 2007 à 01:16:30 »

Bonjour,
Merci infiniment pour les precision que vous m'avez apporter, elles m'ont vraiment beaucoup aidées a comprendre le code source ( Cool ) Wink.

J'ai encore quelques questions.
D'abord, je me suis demander pourquoi remplacer la variable de l'image vide par un tableau?

J'ai declarer le tableau, et je l'ai remplacer donc dans la variable de l'image vide. Voici le code qui en resulte:
$there_is_an_error = $object_tproductslave->insert($this->$p_picture, $pma_id,
                $p_array_to_insert['f_psl_tax_included_price']...


Maintenant, j'ai egalement ajouter en fin de ligne ceci:$p_array_to_insert['f_psl_picture']  car pour moi ce code, (si je me trompe pas  :Smiley) permet une insertion dans la table tproductslave...
//pour moi,le chemin dans le fichier csv ira dans la table tproductslave...

JE commence un peut a m'embrouiller tout seul, j'aimerais vos eclairsissement sil vous plait... Cry
Logged
nicolas_s
Administrator
Hero Member
*****
Posts: 688



View Profile WWW
Re : ajout de champ pour image
« Reply #11 on: 25 June 2007 à 08:45:23 »

Concernant ton code, tu devrais avoir une erreur avec ta variable: $this->$p_picture, je pense que le code est exact est plutôt: $this->p_picture.

Concernant la structure du code, la méthode "$object_tproductslave->insert" permet d'insérer un product slave, objet qui contient une image, une référence, un prix, ....
Donc cette méthode prend en paramètre toutes ces valeurs. Lors de la création du fichier d'import, nous n'avions pas besoin d'importer une image, donc nous avons donc insérer une image vide. Or pour la structure d'une image vide issue d'un formulaire, il s'agit d'un tableau dont je t'ai fourni la structure précedement.

Donc tu dois juste templacer $this->m_file_picture_array_empty qui est un tableau vide représentant l'absence d'une image par un tableau contenant les informations relatives à ton image.

Tu n'as pas besoin de rajouter un code tel que $p_array_to_insert['f_psl_picture'].

Ai je été assez clair dans mes explications ?

Nicolas
Logged

Envie de devenir partenaire de Plici ?
http://www.pliciweb.com.

Vous cherchez un partenaire de Plici ?
http://www.plici.net/l1/p368-Partenaires.html
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #12 on: 25 June 2007 à 20:30:36 »

oki doki  Grin
c'est vachement plus clair la, merci!!  Smiley

je me remets au boulot et je vous tient au courant...

++
Logged
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #13 on: 26 June 2007 à 02:45:26 »

Salut, je vous affiche mots pour mots les manip que j'ai effectuer avec le resultat (qui malheureusment ne sont pas ske j'attends!!!! Sad)

/*remplissage du tableau*/
                $this->p_picture['name'] = 'image.jpg';
                $this->p_picture['tmp_name'] = $p_array_to_insert['f_psl_picture'];
                $this->p_picture['type'] = 'image/*';
                $this->p_picture['size'] = filesize($p_picture['tmp_name']);
                $this->p_picture['error'] = 0;

                if ($psl_id == 0)
                $there_is_an_error = $object_tproductslave->insert($this->p_picture, $pma_id,...
                ...
                ...
// on fait la mise à jour des valeurs
                        $there_is_an_error = $object_tproductslave->update($this->p_picture, $pma_id,...
                 ...


J'ai declarer le tableau dans:  class ImportProductCSV { et modifier les lignes 115 et 132 comme nicolas me l'avait dis.

maintenant, lors de l'importation du fichier csv, voici ce que m'affiche le navigateur:


Les lignes suivantes sont en erreur :

Ligne n°    Titre :    Desc.    Référence    Image
 1     produit7     testproduit     07     bt_go_2.gif
Erreur lors du transfert
Erreur lors de l'ajout du bandeau.
Erreur lors de l'insertion de votre image

 2     produit8     testprod     08     /root/Desktop/bt_go.gif
Erreur lors du transfert
Erreur lors de l'ajout du bandeau.
Erreur lors de l'insertion de votre image


et voici mon fichier csv:
produit7; testproduit; 07; bt_go_2.gif
produit8; testprod; 08; /root/Desktop/bt_go.gif

Maintenant, si j'ecris mots pour mots ce qe nico m'as donner ($p_picture['name'] = 'image.jpg'; etc), et ben a la place des erreurs, sa m'affiche "champ invalide".

Je ne trouve pas mon erreur...help, pleaze!!!! Undecided
Logged
vini
Newbie
*
Posts: 44



View Profile Email
Re : ajout de champ pour image
« Reply #14 on: 27 June 2007 à 20:57:44 »

personne y peut maider??? Cry  Cry  ^^
si vous plait.... Undecided

sans koi, jeme demandais si sa pouvais pas venir de ma base de donnée, j'utilise phpMyAdmin (enfin,c t deja instal,g pas eu le choix...).

Je cherche, je cherche...mais je trouve pas...mais je continue!!!! Smiley
Logged
Pages: [1] 2 3 ... 5 Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!