cockpitinferno Posted January 4, 2012 Share Posted January 4, 2012 j'utilise ce module http://www.mygeeksgi..._product=18&p=5 sur ma version 1.2.5 et ce qui est bien c'est qu'il m'envoi un mail de notification quand un commentaire produit est poste. je constate qu'a priori ce n'est pas le cas sur le module de base fourni avec prestashop et notamment sur celui de la v1.4. je me demande donc si il serait possible de coder pour recevoir un mail à chaque fois qu'un commentaire produit est posté. j'ai pas mal cherché sur le web mais j'ai rien trouvé à ce propos. ou sinon je voudrais au moins savoir comment vous faites, allez vous régulièrement sur la page de validation des commentaires?? merci de vos réponses. Link to comment Share on other sites More sharing options...
virtualgadjo Posted January 5, 2012 Share Posted January 5, 2012 hello, rien de plus simple, dans le controller, repère où est la partie qui inscrit le commentaire dans la base (où si c'est bien fait, appelle une fonction d'un model pour le faire et sous cette partie, il ne te reste plus qu'à coller un petit envoi de mail à la mimine qui t'envoie soit un mail te disant simplement qu'un nouveau commentaire a été posté soit carrément le contenu du commentaire par mail d'où l'intérêt de notre petit die dans l'autre thread, tu ne recevras pas un mail à chaque fois qu'un robot a tenté de poster un truc indésirable have swing Link to comment Share on other sites More sharing options...
cockpitinferno Posted January 5, 2012 Author Share Posted January 5, 2012 merci, mais je comprends rien en fait j'ai voulu utiliser un bout de code du module indiqué plus haut et qui est: $notify = Configuration::get('PRODUCT_COMMENTS_NOTIFY'); if(intval($moderate)==1 && intval($notify)==1) { $shopEmail = Configuration::get('PS_SHOP_EMAIL'); $shopName = Configuration::get('PS_SHOP_NAME'); $notifyEmail = Configuration::get('PRODUCT_COMMENTS_NOTIFY_EMAIL'); $id_lang = (!isset($cookie) OR !is_object($cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($cookie->id_lang); $object = $this->l('A new product comment has been posted and need your moderation.'); $message = $object; $template='comment_need_validation'; $iso = Language::getIsoById(intval($id_lang)); if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html')) Mail::Send($id_lang, $template, $object, array('{shop_name}' => $shopName, '{message}' => stripslashes($message)), $shopEmail, "", $notifyEmail, NULL, NULL, NULL, dirname(__FILE__).'/mails/'); sauf que je ne sais pas trop ou le mettre dans le fichier php et quand j'ai essayé plusieurs trucs ca m'a mis le site en carafe. comme je n'y connais pas grand chose, j'y vais pas mal à tatons en utilisant ma logique , mais je n'ai pas de connaissance en programmations donc c'est pour ca que ce que tu me dis c'est un peu compliqué, il me faut une traduction. mais merci de t'intérésser à cela, d'autant que je suis sur que ca interessera beaucoup de monde,on pourrait peut etre essayer de faire un genre de tuto. Link to comment Share on other sites More sharing options...
virtualgadjo Posted January 5, 2012 Share Posted January 5, 2012 hello, sorry, pas beaucoup là aujourd'hui... alors, je ne suis pas sûr que tu aies besoin de tout le code que tu as récupéré mais une partie peut être utile, en revanche pour essayer de me faire un idée sur où le mettre, il faudrait que je vois le code du controller de ton module, à l'aveugle, je risque de te faire faire des bétises... have swing Link to comment Share on other sites More sharing options...
cockpitinferno Posted January 6, 2012 Author Share Posted January 6, 2012 j'ai mis le fichier productcomments.php en pièce jointe. je pense que c'est dans ce fichier qu'il faut mettre le bout de code. c'est pas urgent. c'est déjà bien sympa de m'aider. dis moi si y a besoin d'autre choses productcomments.php Link to comment Share on other sites More sharing options...
virtualgadjo Posted January 8, 2012 Share Posted January 8, 2012 hello, back on earth alors, pour utiliser la portion de code prestashop que tu as trouvée (pas tout, on ne va pas conditionner le fait d'envoyer un mail ou pas à la config puisque tu veux en recevoir ), ligne 552 dans ton fichier, je tenterais volontiers de remplacer else $smarty->assign('confirmation', $this->l('Comment posted.').((int)(Configuration::get('PRODUCT_COMMENTS_MODERATE')) ? ' '.$this->l('Awaiting moderator validation.') : '')); par else { //le traitement de base $smarty->assign('confirmation', $this->l('Comment posted.').((int)(Configuration::get('PRODUCT_COMMENTS_MODERATE')) ? ' '.$this->l('Awaiting moderator validation.') : '')); //l'envoi de mail $shopEmail = Configuration::get('PS_SHOP_EMAIL'); $shopName = Configuration::get('PS_SHOP_NAME'); $notifyEmail = Configuration::get('PRODUCT_COMMENTS_NOTIFY_EMAIL'); $id_lang = (!isset($cookie) OR !is_object($cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($cookie->id_lang); $object = $this->l('A new product comment has been posted and need your moderation.'); $message = $object; $template='comment_need_validation'; $iso = Language::getIsoById(intval($id_lang)); if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html')) Mail::Send($id_lang, $template, $object, array('{shop_name}' => $shopName, '{message}' => stripslashes($message)), $shopEmail, "", $notifyEmail, NULL, NULL, NULL, dirname(__FILE__).'/mails/'); } si tout se passe bien, cross your fingers ça ne devrait pas mettre la bête en vrac et faire partir un mail utilisant les templates de mail prestahop raconte-moi le résultat have swing Link to comment Share on other sites More sharing options...
cockpitinferno Posted January 8, 2012 Author Share Posted January 8, 2012 merci pour ces modifs. ca n'a pas is le site en carafe mais je ne reçois pas mail. de mémoire sur le fichier du module cité plus haut ce code apparait 2 fois, je mets le fichier en piece jointe. y a peut etre autre chose à modifier. productcomments.php Link to comment Share on other sites More sharing options...
virtualgadjo Posted January 10, 2012 Share Posted January 10, 2012 Hello, sorry, un peu dans tous les sens en ce moment, pas beaucoup là pour venir jouer sur le forum... ah ben en fait le fichier que tu me renvoies là n'est pas du tout le même que le premier deux choses - en fait, là où tu as ajouté le bout de code, tu l'as conditionné comme si tu utilisais les commentaires prestashop avec (ligne 896) if(intval($moderate)==1 && intval($notify)==1) { $shopEmail = Configuration::get('PS_SHOP_EMAIL'); $shopName = Configuration::get('PS_SHOP_NAME'); $notifyEmail = Configuration::get('PRODUCT_COMMENTS_NOTIFY_EMAIL'); $id_lang = (!isset($cookie) OR !is_object($cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($cookie->id_lang); $object = $this->l('A new product comment has been posted and need your moderation.'); $message = $object; $template='comment_need_validation'; $iso = Language::getIsoById(intval($id_lang)); if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html')) Mail::Send($id_lang, $template, $object, array('{shop_name}' => $shopName, '{message}' => stripslashes($message)), $shopEmail, "", $notifyEmail, NULL, NULL, NULL, dirname(__FILE__).'/mails/'); } mais tu n'utilises pas les commentaires de prestashop et donc le notify n'est pas sur 1 essaye la même chose sans encadrer dans cette condition, ça fonctionnera peut-être si pas, regarde juste au dessus, tu as un mail qui part vers l'auteur du commentaire ça donne la syntaxe de la faço dont le module fonctionne et, on pourra aussi tester un truc tout bête, le mail codé à la mano froidement, là on est sûr que ça part et, ensuite, on adaptera à la syntaxe prestashop petite édition; je vois que tu as la même chose ligne 1000 dans le fichier (partout où tu l'as mis, fais-le sans condition pour voir) have swing Link to comment Share on other sites More sharing options...
cockpitinferno Posted January 14, 2012 Author Share Posted January 14, 2012 merci de ta réponse mais je ne connais pas assez le php pour comprendre tout ce que tu dis. plus claireemnt il faudrait que je supprime && intval($notify)==1) c'est bien ca? pour la ligne 1000 c'est sur le fichier du module et je ne sais pas du tout ou mettre ca dans fichier presta de base. Link to comment Share on other sites More sharing options...
virtualgadjo Posted January 16, 2012 Share Posted January 16, 2012 hello ben carrément la ligne if(intval($moderate)==1 && intval($notify)==1) { et le dernier } qui ferme la condition autour du bloc have swing Link to comment Share on other sites More sharing options...
cockpitinferno Posted January 22, 2012 Author Share Posted January 22, 2012 merci je viens seulement de voir ta réponse, je vais me pencher sur ce pb un peu plus tard. dès que j'aurais plus de temps et je reviendrai dire si c'est ok. Link to comment Share on other sites More sharing options...
cockpitinferno Posted February 9, 2012 Author Share Posted February 9, 2012 je viens seulement de me repencher sur la question et en fait j'avais tout simplement oublié de mettre un dossier "mails" dans le dossier du module. tout fonctionne. merci beaucoup, c'est vraiment super! Link to comment Share on other sites More sharing options...
rootzy Posted July 7, 2012 Share Posted July 7, 2012 Bonjour, J'ai essayé votre technique mais je ne reçois aucun mails J'utilise le module de base de commentaires de presta. Vous auriez une marche à suivre précise ? Merci 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