nicolas.jolet Posted January 27, 2011 Share Posted January 27, 2011 Bonjour à tous,Je suis en train de développer un module permettant d'uploaded un fichier mp3 et de modifier la description d'un produit afin d'insérer automatiquement du code html pour jouer ce fichier mp3.Ne voulant pas modifier le coeur de prestashop et ne trouvant aucun hook pour modifier la page d'ajout ou d'édition d'un produit (il existe les hooks addproduct et updateproduct mais qui ne sont appelés qu'après la validation de la page d'édition du produit), je me suis dit qu'utiliser la fonction getContent() de mon module afin d'afficher une page permettant d'effectuer l'opération d'upload du fichier mp3 ainsi que la sélection d'un produit existant n'était pas trop contraignant.Seulement, l'appel à la fonction save() pour mon produit modifié semble ne pas fonctionner correctement car tous les champs de la table ps_product_lang pour le produit sélectionné sont modifiés avec des caractères "aléatoires" (cfr fichier joint).Voici le code incriminé (simplifié volontairement) : <?php if (!defined('_CAN_LOAD_FILES_')) exit; class modifyProduct extends Module { public function __construct() { $this->name = 'modifyProduct'; $this->tab = 'Nicolas Jolet'; $this->version = '1.0'; parent::__construct(); $this->displayName = 'modifyProduct'; $this->description = 'modifyProduct'; } public function install() { if(!parent::install()) return false; return true; } public function getContent() { // [...] ici se trouve le code pour afficher les différents produits existant $id_product = Tools::getValue('product_id'); if (isset($id_product) AND is_numeric($id_product)) { $product = new Product(intval($id_product), false, 1); if (!Validate::isLoadedObject($product)) Tools::displayError($this->l('Error occured with product object.')); // Modify field for description $product->description_short = 'test'; // Jusqu'ici tout fonctionne if ($product->save()) // BUG !!!! $output .= $this->displayConfirmation($this->l("Product ($id_product) successfully modified")); else $output .= $this->displayError($this->l("Product ($id_product) wasn't modified")); } // [...] } } ?> Vous trouverez en pièce jointe le résultat en DB de la simple modification de description_short...Merci d'avance à ceux qui pourront me dépanner.NicolasType d’install (nouvelle/MàJ) : nouvelleVersion de PS : 1.3.6Thème (défaut/perso) : defaultCode (original/modifié) : N/AHébergement : homeVersion de PHP : 5Version de MySQL : 5.1.49Navigateur(s) concerné(s) : tous Link to comment Share on other sites More sharing options...
nicolas.jolet Posted February 6, 2011 Author Share Posted February 6, 2011 un petit upJe veux bien donner plus de détails s'il le faut, mais je suis toujours bloqué là-dessus...Merci d'avance,Nicolas Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now