astrid2776 Posted November 23, 2016 Share Posted November 23, 2016 (edited) Bonjour, Je viens vers vous car notre dernier client qui a payé sa commande avec paypal n'a pas reçu de mail de confirmation de paiement. Je suis donc allée sur sa fiche et j'ai cliqué sur "renvoyer le mail", ce qui m'a généré une erreur TCPDF. En pièce jointe, je vous ai mis ce qui est affiché en mode debug. ça n'était jamais arrivé avant avec ce module et c'est arrivé du jour au lendemain... Edited November 28, 2016 by astrid2776 (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted November 23, 2016 Share Posted November 23, 2016 l'image du logo citée dans le message d'erreur existe ou pas ? Link to comment Share on other sites More sharing options...
astrid2776 Posted November 23, 2016 Author Share Posted November 23, 2016 Oui elle existe bien Link to comment Share on other sites More sharing options...
Eolia Posted November 23, 2016 Share Posted November 23, 2016 Vous êtes sur un Prestashop 1.5 ? Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 Désolée je n'ai pas pensé à le préciser. Je suis sur Prestashop 1.6.1.4 Link to comment Share on other sites More sharing options...
Eolia Posted November 24, 2016 Share Posted November 24, 2016 Pas évident comme ça, mais vous devez avoir le problème pour tous les mails en fait, car ce n'est pas le module qui envoie le mail mais Prestashop. Apparemment il n'arrive pas à charger l'image du logo. Avez-vous effectué des modifications récemment (mises à jour de modules ou autre) ? Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 Bizarrement avec les autres mails il n'y a aucun soucis, ils sont envoyés lorsqu'un paiement est accepté. Maintenant que j'y pense il n'y a pas longtemps que le module TNT a été installé mais il est désactivé pour le moment. Link to comment Share on other sites More sharing options...
BeComWeb Posted November 24, 2016 Share Posted November 24, 2016 Pouvez vous vérifier via FTP si vous avez un fichier intitulé "Tools.php" dans le répertoire "/override/classes" svp ? Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 Oui, je l'ai trouvé! Voici ce qu'il m'indique: <?php class Tools extends ToolsCore { /** * Get meta tages for a given page * * @param integer $id_lang Language id * @return array Meta tags */ public static function getMetaTags($id_lang, $page_name, $title = '') { global $maintenance; if (!(isset($maintenance) AND (!in_array(self::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP')))))) { /* Products specifics meta tags */ if ($id_product = self::getValue('id_product')) { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description_short` FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = p.`id_product`) WHERE pl.id_lang = '.(int)($id_lang).' AND pl.id_product = '.(int)($id_product).' AND p.active = 1'); if ($row) { if (empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['description_short']); return self::completeMetaTags($row, $row['name']); } } /* Categories specifics meta tags */ elseif ($id_category = self::getValue('id_category')) { if (!empty($title)) $title = ' - '.$title; $page_number = (int)self::getValue('p'); $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description` FROM `'._DB_PREFIX_.'category_lang` WHERE id_lang = '.(int)($id_lang).' AND id_category = '.(int)($id_category)); if ($row) { if (empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['description']); // Paginate title if (!empty($row['meta_title'])) $row['meta_title'] = $title.$row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : ''); else $row['meta_title'] = $row['name'].(!empty($page_number) ? ' ('.$page_number.')' : ''); if (!empty($title)) $row['meta_title'] = $title.(!empty($page_number) ? ' ('.$page_number.')' : ''); return self::completeMetaTags($row, $row['name']); } } /* Manufacturers specifics meta tags */ elseif ($id_manufacturer = self::getValue('id_manufacturer')) { $page_number = (int)self::getValue('p'); $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `name`, `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'manufacturer_lang` ml LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (ml.`id_manufacturer` = m.`id_manufacturer`) WHERE ml.id_lang = '.(int)($id_lang).' AND ml.id_manufacturer = '.(int)($id_manufacturer)); if ($row) { if (empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['meta_description']); $row['meta_title'] .= $row['name'] . (!empty($page_number) ? ' ('.$page_number.')' : ''); return self::completeMetaTags($row, $row['meta_title']); } } /* Suppliers specifics meta tags */ elseif ($id_supplier = self::getValue('id_supplier')) { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `name`, `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'supplier_lang` sl LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (sl.`id_supplier` = s.`id_supplier`) WHERE sl.id_lang = '.(int)($id_lang).' AND sl.id_supplier = '.(int)($id_supplier)); if ($row) { if (empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['meta_description']); if (!empty($row['meta_title'])) $row['meta_title'] = $row['meta_title']; return self::completeMetaTags($row, $row['name']); } } /* CMS specifics meta tags */ elseif ($id_cms = self::getValue('id_cms')) { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_lang` WHERE id_lang = '.(int)($id_lang).' AND id_cms = '.(int)($id_cms)); if ($row) { $row['meta_title'] = $row['meta_title']; return self::completeMetaTags($row, $row['meta_title']); } } /* CMS category specifics meta tags */ elseif ($id_cms = self::getValue('id_cms_category')) { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_category_lang` WHERE id_lang = '.(int)($id_lang).' AND id_cms_category = '.(int)($id_cms)); if ($row) { $row['meta_title'] = $row['meta_title']; return self::completeMetaTags($row, $row['meta_title']); } } } /* Default meta tags */ return self::getHomeMetaTags($id_lang, $page_name); } /** * Get meta tags for a given page * * @param integer $id_lang Language id * @return array Meta tags */ public static function getHomeMetaTags($id_lang, $page_name) { /* Metas-tags */ $metas = Meta::getMetaByPage($page_name, $id_lang); $ret['meta_title'] = (isset($metas['title']) AND $metas['title']) ? $metas['title'] : ""; $ret['meta_description'] = (isset($metas['description']) AND $metas['description']) ? $metas['description'] : ''; $ret['meta_keywords'] = (isset($metas['keywords']) AND $metas['keywords']) ? $metas['keywords'] : ''; return $ret; } public static function completeMetaTags($metaTags, $defaultValue) { global $cookie; if (empty($metaTags['meta_title'])) $metaTags['meta_title'] = $defaultValue; if (empty($metaTags['meta_description'])) $metaTags['meta_description'] = Configuration::get('PS_META_DESCRIPTION', (int)($cookie->id_lang)) ? Configuration::get('PS_META_DESCRIPTION', (int)($cookie->id_lang)) : ''; if (empty($metaTags['meta_keywords'])) $metaTags['meta_keywords'] = Configuration::get('PS_META_KEYWORDS', (int)($cookie->id_lang)) ? Configuration::get('PS_META_KEYWORDS', (int)($cookie->id_lang)) : ''; return $metaTags; } } ?> Link to comment Share on other sites More sharing options...
BeComWeb Posted November 24, 2016 Share Posted November 24, 2016 Ok, si tu regardes la même méthode dans le fichier "d'origine" elle attend 3 arguments et se comporte différemment. public static function completeMetaTags($meta_tags, $default_value, Context $context = null) { Tools::displayAsDeprecated(); return Meta::completeMetaTags($meta_tags, $default_value, $context); } Donc je pense que tu dois regarder de ce côté là. Sais tu quel module aurait pu ajouter ce fichier d'override ? Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 Ah oui... j'ai regardé mais en désactivant certains modules ça ne change pas plus que ça :/ Link to comment Share on other sites More sharing options...
Eolia Posted November 24, 2016 Share Posted November 24, 2016 Non mais l'override (et la notice qui n'est qu'une notice) n'a rien à voir avec l'erreur. Le problème vient de la classe TCPDF qui n'arrive pas à récupérer le logo. Ce problème est curieux car le fichier existe bien. Vous n'auriez pas modifié quelque chose lié au protocole (https) ? L'envoi du mail ne se fait pas parce que la génération de la facture (en pdf) échoue Link to comment Share on other sites More sharing options...
BeComWeb Posted November 24, 2016 Share Posted November 24, 2016 Désactiver les modules ne changera rien. Le fichier d'override a été déposé là par ... quelque chose ou quelqu'un. En général ils sont créés par un module ou ... par toi (ou une autre personne qui aurait développé ton site). Mon idée était de déterminer quel module avait pu le créer et si ce module n'est pas important/vital de le supprimer puis de supprimer le fichier overridé (dans ce cas il faudra aussi régénérer le fichier cache/class_index.php). Link to comment Share on other sites More sharing options...
BeComWeb Posted November 24, 2016 Share Posted November 24, 2016 Encore un bon point pour Eolia, la 1ère erreur n'est qu'une notice. Il n'y a pas forcément de rapport avec ton problème. Donc je t'envoie peut-être sur une mauvaise piste. En revanche un test très simple serait de modifier le logo des factures depuis le menu "Préférences > Themes" (ensuite tu vas dans l 'onglet "Logos pour les e-mails et factures"). Tu peux aussi jeter un oeil à ce topic (la soluce est un peu sale mais elle a le mérite de fonctionner). Une autre piste serait les droits sur le répertoire des images. Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 (edited) Dès la mise en ligne du site il y a quelques mois le site était en https et je n'y ais pas retouché depuis. BeComWeb comment faites-vous pour savoir quel module peut créer ce problème? J'ai désinstallé le module de rétractation qui n'a pas servi pour l'instant et j'ai toujours la même erreur qui est générée donc j'imagine que ce n'est pas lui qui est en cause. Je vais voir les autres pistes que vous me conseillez et je vous tiens au courant Edited November 24, 2016 by astrid2776 (see edit history) Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 Donc j'ai essayé les 2 solutions et il me renvoie toujours un message d'erreur TCPDF. Les droits d'accès sont à 0664 pour les fichiers. Sacré casse-tête! Link to comment Share on other sites More sharing options...
Eolia Posted November 24, 2016 Share Posted November 24, 2016 Envoyez-moi un accès ftp par MP, je pourrais vous faire un debug en soirée Link to comment Share on other sites More sharing options...
astrid2776 Posted November 24, 2016 Author Share Posted November 24, 2016 Merci, c'est très gentil de votre part! Link to comment Share on other sites More sharing options...
Eolia Posted November 26, 2016 Share Posted November 26, 2016 Merci de passer le sujet en [Résolu] Le souci venait du header.tpl des factures qui n'était pas conforme. J'ai corrigé l'override au passage^^ Link to comment Share on other sites More sharing options...
astrid2776 Posted November 28, 2016 Author Share Posted November 28, 2016 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