RomuGb Posted November 26, 2012 Share Posted November 26, 2012 Bonjour, Je suis en version 1.5 avec l'url rewriting activé. Quand je modifie une categorie en choisissant une image, pas de problème. Mais si je modifie une categorie qui a déjà une image, si je ne touche pas à l'image et que je valide la fiche, je perds l'image... En désactivant l'url rewiting j'ai le même problème. Une idée ? Merci Romuald. Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 3, 2012 Share Posted December 3, 2012 Même problème avec la 1.5.2, je cherche actuellement une solution. Je vous tiens au courant si je trouve! Link to comment Share on other sites More sharing options...
RomuGb Posted December 3, 2012 Author Share Posted December 3, 2012 Merci, vous avez avancé ? Link to comment Share on other sites More sharing options...
benjamin utterback Posted December 3, 2012 Share Posted December 3, 2012 Topic Moderation- Moved to Correct Forum Language Link to comment Share on other sites More sharing options...
alibi Posted December 3, 2012 Share Posted December 3, 2012 Bonjour, j'ai exactement le même souci, très pénalisant car il faut uploader de nouveau l'image lorsqu'on modifie une fiche, aussi bien de catégorie que de produit... Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 4, 2012 Share Posted December 4, 2012 Non RomuGb, je n'ai pas encore trouvé de solution. Link to comment Share on other sites More sharing options...
Ninja Of Web Posted December 4, 2012 Share Posted December 4, 2012 Il s'agit d'une mise a jour ou d'un simple upload d'image dans les catégories ? Idem pour les produits, les scenes... ou pas ? Et depuis l'import avez vous tester ? Loic. Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 4, 2012 Share Posted December 4, 2012 Il s'agit d'une mise a jour ou d'un simple upload d'image dans les catégories ? Cela se produit lorsque l'on change quelque chose dans une catégorie.(Option simple upload d'image dans les catégories) Alors on voit que l'image est perdue. Nous sommes alors obligés d'uploader de nouveau l'image de la catégorie. Idem pour les produits, les scenes... ou pas ? Les produits non, c'est bien spécifique aux catégories. Les scènes? Je ne vois pas de quoi vous voulez parler. Et depuis l'import avez vous tester ? Je pense que pour la plupart nous uploadons nos images via le bouton "Choisissez un fichier" du formulaire d'ajout / modification de catégories. Si vous avez besoin d'autres précisions, n'hésitez pas. Link to comment Share on other sites More sharing options...
RomuGb Posted December 4, 2012 Author Share Posted December 4, 2012 Oui c'est cela, mise à jour d'une famille uniquement. Ex : je crée une famille en uploadant une image, c'est ok. J'édite la famile, je ne touche pas à l'image (je corrige le nom de la famille par exemple), je valide => l'image à disparu. Voila. Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 4, 2012 Share Posted December 4, 2012 Donc RomuGb et moi avons ce problème et par contre alibi a apparemment un problème aussi avec les produits Bonjour, j'ai exactement le même souci, très pénalisant car il faut uploader de nouveau l'image lorsqu'on modifie une fiche, aussi bien de catégorie que de produit... Link to comment Share on other sites More sharing options...
alibi Posted December 4, 2012 Share Posted December 4, 2012 Correction, ça ne se produit pas pour les produits (dont les images ne sont pas gérées de la même manière), j'ai écris un peu vite, fin de journée... Pour les catégories c'est le même problème que RomuGB, comme si le champ image étant vide était pris dans le traitement en ignorant qu'il y a déjà une image, du coup l'image est supprimée. Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 5, 2012 Share Posted December 5, 2012 Quelqu'un a-t-il trouvé une solution? Link to comment Share on other sites More sharing options...
RomuGb Posted December 7, 2012 Author Share Posted December 7, 2012 C'est bon j'ai la solution ! Editer la page /controllers/admin/AdminCategoriesController.php ligne 512, remplacer la ligne : if (Tools::isSubmit('forcedeleteImage') || isset($_FILES['image'])) Par : if (Tools::isSubmit('forcedeleteImage') || (isset($_FILES['image']) && !empty($_FILES['image']['name']))) Sauver la page. Et voila !! Romuald Link to comment Share on other sites More sharing options...
Ninja Of Web Posted December 7, 2012 Share Posted December 7, 2012 Bien joué Link to comment Share on other sites More sharing options...
alibi Posted December 7, 2012 Share Posted December 7, 2012 Extra, je venais justement poster ma solution... qui n'est autre que la même ^^ A la petite différence que j'ai préféré passer par un override pour éviter les soucis sur les mises à jour. C'est quand même étonnant que personne d'autre n'ai ce problème, perso j'utilise la 1.5.2.0. Link to comment Share on other sites More sharing options...
RomuGb Posted December 7, 2012 Author Share Posted December 7, 2012 Oui bonne idée pour l'override Alibi, cependant j'espere que ce bug sera corrigé lors de la prochaine mise à jour, c'est pour cela que je n'ai pas utilisé l'override. Sinon merci Ninja Of Web, vous avez l'air de bien vous y connaitre, normal pour un ancien de Prestashop, j'aurais un petit problème à vous présenter : sur mon site : www.easy-commerce.fr j'ai un pb avec le panier dans la colonne de droite. Quand j'y ajoute un article avec attribut tout se passe bien mais quand je le supprime il disparait bien de ma base de donnée mais il reste une ligne résiduelle dans le panier de droite alors que dans le panier du header tout est ok. Une personne m'a dit que c'etait un problème d'id et que les 2 paniers ne pouvaient pas être traités en même temps.... Je trouve ça bizarre. Quand pensez-vous ? Merci pour votre aide. Romuald. Link to comment Share on other sites More sharing options...
alibi Posted December 7, 2012 Share Posted December 7, 2012 Oui bonne idée pour l'override Alibi, cependant j'espere que ce bug sera corrigé lors de la prochaine mise à jour, c'est pour cela que je n'ai pas utilisé l'override. Je comprends, mais j'ai comme règle de ne jamais "espérer" une modification lors de la prochaine maj... Il vaut mieux prendre les devants, ça évite de devoir refaire des modifs déjà faites Pour le reste je ne peux pas aider, je n'ai pas encore attaqué la partir panier... good luck ! Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 10, 2012 Share Posted December 10, 2012 up Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 10, 2012 Share Posted December 10, 2012 Han pardon, j'ai lu trop vite le topic, merci pour la solution! Par contre, il faudrait signaler ceci pour que ce soit corrigé par PrestaShop non? Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 10, 2012 Share Posted December 10, 2012 Par contre, je préfère aussi faire des surcharges, pourrais-tu poser ta solution alibi? J'ai écris comme suit, mais ça ne semble pas fonctionner. <?php class AdminCategoriesController extends AdminCategoriesControllerCore { public function postProcess() { if (!in_array($this->display, array('edit', 'add'))) $this->multishop_context_group = false; if (Tools::isSubmit('forcedeleteImage') || (isset($_FILES['image'])) && !empty($_FILES['image']['name'])) { $this->processForceDeleteImage(); if (Tools::isSubmit('forcedeleteImage')) Tools::redirectAdmin(self::$currentIndex.'&token='.Tools::getAdminTokenLite('AdminCategories').'&conf=7'); } return parent::postProcess(); } } Link to comment Share on other sites More sharing options...
alibi Posted December 10, 2012 Share Posted December 10, 2012 (edited) Hum, ton code à l'air bon. Voici ce que j'utilise pour faire le test : if (Tools::isSubmit('forcedeleteImage') || (isset($_FILES['image']) && !empty($_FILES['images']))) Plutôt que d'aller chercher un élément spécifique du tableau je regarde si le tableau est vide ou non. EDIT : on pourrait peut être même simplifier encore et ne faire que le test sur le remplissage du tableau, puisque le tableau est, lui, toujours passé, ce qui donnerait (pas testé) : if (Tools::isSubmit('forcedeleteImage') || !empty($_FILES['images'])) Edited December 10, 2012 by alibi (see edit history) Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 11, 2012 Share Posted December 11, 2012 Oui bon, je viens de le refaire ce matin en testant à chaque fois, et j'ai compris qu'il fallait que je supprime la fonction dans le controller de base pour pouvoir la réécrire. Encore merci à tous ceux qui ont fait avancer la discussion. Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 11, 2012 Share Posted December 11, 2012 Je précise donc pour les débutants, que j'ai supprimé dans "racine/controllers/admin/AdminCategoriesController" ligne 508 à 520 la fonction postProcess en entière : public function postProcess() { if (!in_array($this->display, array('edit', 'add'))) $this->multishop_context_group = false; if (Tools::isSubmit('forcedeleteImage') || isset($_FILES['image'])) { $this->processForceDeleteImage(); if (Tools::isSubmit('forcedeleteImage')) Tools::redirectAdmin(self::$currentIndex.'&token='.Tools::getAdminTokenLite('AdminCategories').'&conf=7'); } return parent::postProcess(); } Et que je l'ai réécrite dans "racine/override/controllers/admin/AdminCategoriesController" : <?php class AdminCategoriesController extends AdminCategoriesControllerCore { public function postProcess() { if (!in_array($this->display, array('edit', 'add'))) $this->multishop_context_group = false; if (Tools::isSubmit('forcedeleteImage') || (isset($_FILES['image'])) && !empty($_FILES['image']['name'])) { $this->processForceDeleteImage(); if (Tools::isSubmit('forcedeleteImage')) Tools::redirectAdmin(self::$currentIndex.'&token='.Tools::getAdminTokenLite('AdminCategories').'&conf=7'); } return parent::postProcess(); } } Pourquoi tout ça? Pour faire de la surcharge en espérant que le problème sera corrigé dans la prochaine mise à jour. Et de plus, je ne perdrai pas mes modifications dans la prochaine mise à jour. Si je rencontre de nouveau le problème, j'aurai juste à supprimer de nouveau dans "racine/controllers/admin/AdminCategoriesController" la fonction post Process. Link to comment Share on other sites More sharing options...
alibi Posted December 11, 2012 Share Posted December 11, 2012 Tant mieux si ça fonctionne. Par contre c'est plutôt étrange que l'override ne fonctionne pas, car justement, comme son nom l'indique, il permet de surclasser un objet existant sans avoir besoin de le modifier/supprimer. Link to comment Share on other sites More sharing options...
Ninja Of Web Posted December 11, 2012 Share Posted December 11, 2012 C'est un cas spécifique. Le fait d'utiliser le parent::nom_de_la_methode(); dans ton override, Fait que code va exécuter cette méthode aussi dans le fichier qui est overridé puis dans admincontroller.php Donc ici voici l'ordre d'éxécution : Override/controllers/admin/admincategory.php controllers/admin/admincategory.php Classes/controller/admincontroller.php Loic. Link to comment Share on other sites More sharing options...
Kil0w0g Posted December 11, 2012 Share Posted December 11, 2012 ça devient compliqué^^" Il faudrait donc modifier return parent::postProcess(); Dans l'override? (Toujours dans le but de ne pas toucher aux fichiers de base) Link to comment Share on other sites More sharing options...
Ninja Of Web Posted December 11, 2012 Share Posted December 11, 2012 Oui il faut mettre : If(....) /* code */ Else Return parent::postProcess(); Loic. Link to comment Share on other sites More sharing options...
alibi Posted December 12, 2012 Share Posted December 12, 2012 Oulala, là c'est moi qui n'y comprends plus rien... J'ai vérifié et effectivement ça ne fonctionne pas non plus chez moi, les modifications que j'avais fait sur le fichier de base étaient peut être restées en cache. Par contre je viens d'essayer différentes combinaisons avec le if(...) else return parent::postProcess(); mais rien n'y fait, ça ne fonctionne pas. D'ailleurs pourquoi retourner chercher la fonction dans la classe parent, ça court-circuite forcément ce qui a été fait dans l'override non ? (d'où l'utilité du if je suppose mais du coup je vois comment l'implémenter pour que ça fonctionne). Link to comment Share on other sites More sharing options...
Pticrusty Posted January 23, 2013 Share Posted January 23, 2013 Bonjour à tous, J'ai eu le même problème sur un prestashop 1.5.2 je vous fait donc part de ma solution à mettre dans l'override: <?php class AdminCategoriesController extends AdminCategoriesControllerCore { public function processForceDeleteImage(){ if (Tools::isSubmit('forcedeleteImage') || (isset($_FILES['image']) && !empty($_FILES['images']))){ $category = $this->loadObject(true); if (Validate::isLoadedObject($category)) $category->deleteImage(true); } } } 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