Suppression d'un Produit
Started by Guest_MOON CONCEPT_*, mai 12 2009 09:28
12 replies to this topic
#1 Guest_MOON CONCEPT_*
Posté 12 mai 2009 - 09:28
Bonjour,
Lors de la suppression d'un produit en BackOffice, les images ne sont pas effacées du serveur,
est-ce normal ?
PS: par contre, l'effacement individuel des images fonctionne.
Merci
Lors de la suppression d'un produit en BackOffice, les images ne sont pas effacées du serveur,
est-ce normal ?
PS: par contre, l'effacement individuel des images fonctionne.
Merci
#2
Posté 13 mai 2009 - 09:11
Si les images ne sont pas effacées (ce doit être un oubli), il faut reprendre le code correspondant à la suppression d'UNE image, et faire une boucle sur les 4 images pour les effacer.
PEEL.fr : Petite Entreprise En Ligne
Service technique
01 75 43 67 97
Service technique
01 75 43 67 97
#3 Guest_MOON CONCEPT_*
Posté 13 mai 2009 - 09:44
Oui, c'est bon pour moi maintenant.
Et qu'en est il des miniatures ?
Elles sont créées lors de l'affichage, mais sont elles supprimées en cas de modification des visuels principaux ?
Et qu'en est il des miniatures ?
Elles sont créées lors de l'affichage, mais sont elles supprimées en cas de modification des visuels principaux ?
#4
Posté 13 mai 2009 - 09:46
oui c'est vrai que c'est galère cette histoire, être obligé de rentrer dans les fiches produit pour effacer les images individuellement.
Si vous avez un correctif, je suis preneur.
Si vous avez un correctif, je suis preneur.
#5
Posté 04 juin 2009 - 17:59
Bonjour, vous auriez un correctif pour les nuls qui ne savent pas programmer ?
Mille mercis
Mille mercis
#6
Posté 05 juin 2009 - 08:25
Bonjour,
Le code qui permet de supprimer un produit se trouve dans administrer/produits.php : fonction produits.php
Juste après cette fonction, on a la fonction supprime_fichier() qui permet elle, de supprimer une image dont l'intitulé (image1, image2, etc...) est passée en paramètre.
Il faudrait donc a priori que supprime_produit appelle supprime_fichier().
J'écrirais donc un code du type :
function supprime_produit($id)
{
/* Supprime le produit spécificié par $id. Il faut supprimer le produit
* puis les entrées correspondantes de la table peel_produits_categories. */
/* Charge les infos du produit. */
$qid = mysql_query("
SELECT nom_" . $_SESSION['langue'] . "
FROM peel_produits
WHERE id = '" . intval($id) . "'
");
$prod = mysql_fetch_array($qid);
supprime_fichier(intval($id), image1);
supprime_fichier(intval($id), image2);
supprime_fichier(intval($id), image3);
supprime_fichier(intval($id), image4);
/* Efface le produit */
mysql_query("DELETE FROM peel_produits WHERE id = '" . intval($id) . "'");
/* Efface ce produit de la table peel_produits_categories */
mysql_query("DELETE FROM peel_produits_categories WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_sites_pivots WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_produits_references WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_produits_couleurs WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_produits_tailles WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_stocks WHERE produit_id = '" . intval($id) . "'");
echo '<p class="normal">Le produit <b>' . html_entity_decode($prod['nom_' . $_SESSION['langue'] . '']) . '</b> a été effacé</p>';
}
Je n'ai pas vérifié ce code. A priori, il doit être OK, mais bien tester tout de même !!!!!
Le code qui permet de supprimer un produit se trouve dans administrer/produits.php : fonction produits.php
Juste après cette fonction, on a la fonction supprime_fichier() qui permet elle, de supprimer une image dont l'intitulé (image1, image2, etc...) est passée en paramètre.
Il faudrait donc a priori que supprime_produit appelle supprime_fichier().
J'écrirais donc un code du type :
function supprime_produit($id)
{
/* Supprime le produit spécificié par $id. Il faut supprimer le produit
* puis les entrées correspondantes de la table peel_produits_categories. */
/* Charge les infos du produit. */
$qid = mysql_query("
SELECT nom_" . $_SESSION['langue'] . "
FROM peel_produits
WHERE id = '" . intval($id) . "'
");
$prod = mysql_fetch_array($qid);
supprime_fichier(intval($id), image1);
supprime_fichier(intval($id), image2);
supprime_fichier(intval($id), image3);
supprime_fichier(intval($id), image4);
/* Efface le produit */
mysql_query("DELETE FROM peel_produits WHERE id = '" . intval($id) . "'");
/* Efface ce produit de la table peel_produits_categories */
mysql_query("DELETE FROM peel_produits_categories WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_sites_pivots WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_produits_references WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_produits_couleurs WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_produits_tailles WHERE produit_id = '" . intval($id) . "'");
mysql_query("DELETE FROM peel_stocks WHERE produit_id = '" . intval($id) . "'");
echo '<p class="normal">Le produit <b>' . html_entity_decode($prod['nom_' . $_SESSION['langue'] . '']) . '</b> a été effacé</p>';
}
Je n'ai pas vérifié ce code. A priori, il doit être OK, mais bien tester tout de même !!!!!
PEEL.fr : Petite Entreprise En Ligne
Service technique
01 75 43 67 97
Service technique
01 75 43 67 97
#7
Posté 05 juin 2009 - 17:17
merci Jean-Hervé, je vais tester dès que j'ai un moment.
#8
Posté 07 juin 2009 - 17:17
Bonjour les miniatures,
Pas de quoi
J'attends votre retour sur ce sujet.
Pas de quoi
J'attends votre retour sur ce sujet.
PEEL.fr : Petite Entreprise En Ligne
Service technique
01 75 43 67 97
Service technique
01 75 43 67 97
#9
Posté 08 juin 2009 - 19:25
Petite correction au code, les guillemets ont été oubliés :
Il faut remplacer :
supprime_fichier(intval($id), image1);
supprime_fichier(intval($id), image2);
supprime_fichier(intval($id), image3);
supprime_fichier(intval($id), image4);
par :
supprime_fichier(intval($id), 'image1');
supprime_fichier(intval($id), 'image2');
supprime_fichier(intval($id), 'image3');
supprime_fichier(intval($id), 'image4');
Il faut remplacer :
supprime_fichier(intval($id), image1);
supprime_fichier(intval($id), image2);
supprime_fichier(intval($id), image3);
supprime_fichier(intval($id), image4);
par :
supprime_fichier(intval($id), 'image1');
supprime_fichier(intval($id), 'image2');
supprime_fichier(intval($id), 'image3');
supprime_fichier(intval($id), 'image4');
PEEL.fr Solution eCommerce de boutique en ligne
Contactez-nous pour votre boutique eCommerce : http://www.peel.fr/u...rs/sendmail.php
01 75 43 67 97
Contactez-nous pour votre boutique eCommerce : http://www.peel.fr/u...rs/sendmail.php
01 75 43 67 97
#10
Posté 08 juin 2009 - 23:07
Effectivement, merci pour la correction
PEEL.fr : Petite Entreprise En Ligne
Service technique
01 75 43 67 97
Service technique
01 75 43 67 97
#11
Posté 11 juin 2009 - 12:18
Cette amélioration sera effective dans la 5.4
PEEL.fr Solution eCommerce de boutique en ligne
Contactez-nous pour votre boutique eCommerce : http://www.peel.fr/u...rs/sendmail.php
01 75 43 67 97
Contactez-nous pour votre boutique eCommerce : http://www.peel.fr/u...rs/sendmail.php
01 75 43 67 97
#12
Posté 11 juin 2009 - 21:58
merci Jean-Hervé et Gilles, cela fonctionne à merveille.
#13
Posté 12 juin 2009 - 08:40
Je clos donc ce sujet.
N'hésitez pas à poster de nouveau en cas de souci.
N'hésitez pas à poster de nouveau en cas de souci.
PEEL.fr : Petite Entreprise En Ligne
Service technique
01 75 43 67 97
Service technique
01 75 43 67 97
1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)


Ce sujet est fermé









