Jump to content

ryudr

Members
  • Posts

    10
  • Joined

  • Last visited

ryudr's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Je rencontre exactement le même problème. Je tente une update de la 1.3 vers la 1.5 et impossible !
  2. J'ai testé ceci : $messages = Message::getMessagesByOrderId($order->id, true); if (sizeof($messages)) { foreach ($messages as $message) { $this->Cell(0, 10, self::l($message['message']), 0, 0, 'C', 0); $this->Ln(4); } } a ajouter à la ligne 157 dans public function Footer() mais cela ne semble pas fonctionner...
  3. Merci thierry mais ce module sert juste à insérer du texte statique dans le pdf, ici il est question de pouvoir ajouter les commentaires entrés par les clients pendant le processus de commande.
  4. Comment récupérer la variable qui affiche le ou les messages du client afin de les mettre dans PDF.php (classes/PDF.php) afin de les afficher dans le bon de livraison ? En effet, dans ce fichier on récupère les coordonnées du client, sa commande mais je ne vois nul part comment récupérer le ou les messages laissés ? Merci de votre aide !
  5. Voilà la solution testée avec succès chez moi : Avertissement : J'ai donné le nom de $pdfCGV à ma variable mais vous pouvez l'appeler autrement. 1) Dans classes/Mail.php : Modifier : static public function Send($id_lang, $template, $subject, $templateVars, $to, $toName = NULL, $from = NULL, $fromName = NULL, $fileAttachment = NULL, $modeSMTP = NULL, $templatePath = _PS_MAIL_DIR_) Par : static public function Send($id_lang, $template, $subject, $templateVars, $to, $toName = NULL, $from = NULL, $fromName = NULL, $fileAttachment = NULL, $pdfCGV = NULL, $modeSMTP = NULL, $templatePath = _PS_MAIL_DIR_) Modifier : global $_LANGMAIL; /* Create mail and attach differents parts */ $message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME').'] '.((is_array($_LANGMAIL) AND key_exists($subject, $_LANGMAIL)) ? $_LANGMAIL[$subject] : $subject)); $templateVars['{shop_logo}'] = (file_exists(_PS_IMG_DIR_.'logo.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.'logo.jpg'))) : ''; $templateVars['{shop_name}'] = Configuration::get('PS_SHOP_NAME'); $templateVars['{shop_url}'] = 'http://'.Tools::getHttpHost(false, true).__PS_BASE_URI__; $swift->attachPlugin(new Swift_Plugin_Decorator(array($to_plugin => $templateVars)), 'decorator'); if ($configuration['PS_MAIL_TYPE'] == 3 OR $configuration['PS_MAIL_TYPE'] == 2) $message->attach(new Swift_Message_Part($templateTxt, 'text/plain', '8bit', 'utf-8')); if ($configuration['PS_MAIL_TYPE'] == 3 OR $configuration['PS_MAIL_TYPE'] == 1) $message->attach(new Swift_Message_Part($templateHtml, 'text/html', '8bit', 'utf-8')); if ($fileAttachment AND isset($fileAttachment['content']) AND isset($fileAttachment['name']) AND isset($fileAttachment['mime'])) $message->attach(new Swift_Message_Attachment($fileAttachment['content'], $fileAttachment['name'], $fileAttachment['mime'])); /* Send mail */ $send = $swift->send($message, $to, new Swift_Address($from, $fromName)); $swift->disconnect(); return $send; Par : global $_LANGMAIL; /* Create mail and attach differents parts */ $message = new Swift_Message('['.Configuration::get('PS_SHOP_NAME').'] '.((is_array($_LANGMAIL) AND key_exists($subject, $_LANGMAIL)) ? $_LANGMAIL[$subject] : $subject)); $templateVars['{shop_logo}'] = (file_exists(_PS_IMG_DIR_.'logo.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.'logo.jpg'))) : ''; $templateVars['{shop_name}'] = Configuration::get('PS_SHOP_NAME'); $templateVars['{shop_url}'] = 'http://'.Tools::getHttpHost(false, true).__PS_BASE_URI__; $swift->attachPlugin(new Swift_Plugin_Decorator(array($to_plugin => $templateVars)), 'decorator'); if ($configuration['PS_MAIL_TYPE'] == 3 OR $configuration['PS_MAIL_TYPE'] == 2) $message->attach(new Swift_Message_Part($templateTxt, 'text/plain', '8bit', 'utf-8')); if ($configuration['PS_MAIL_TYPE'] == 3 OR $configuration['PS_MAIL_TYPE'] == 1) $message->attach(new Swift_Message_Part($templateHtml, 'text/html', '8bit', 'utf-8')); if ($fileAttachment AND isset($fileAttachment['content']) AND isset($fileAttachment['name']) AND isset($fileAttachment['mime'])) $message->attach(new Swift_Message_Attachment($fileAttachment['content'], $fileAttachment['name'], $fileAttachment['mime'])); if ($pdfCGV AND isset($pdfCGV)) $message->attach(new Swift_Message_Attachment(new Swift_File(_PS_ROOT_DIR_.'/REPERTOIRE + NOM DU FICHIER PDF'), 'NOM DU FICHIER PDF.pdf')); /* Send mail */ $send = $swift->send($message, $to, new Swift_Address($from, $fromName)); $swift->disconnect(); return $send; 2) Dans classes/PaymentModule.php : Ajouter : $pdfCGV = 1; Sous (~ ligne 322) : $invoice_state = $invoice->id_state ? new State(intval($invoice->id_state)) : false; Et modifier : Mail::Send(intval($order->id_lang), 'order_conf', 'Order confirmation', $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); Par : Mail::Send(intval($order->id_lang), 'order_conf', 'Order confirmation', $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment, $pdfCGV); Pour ceux qui utilisent le module Mail Alerts (Alertes email) : 3) Dans modules/mailalerts/mailalerts.php : Modifier : Mail::Send($id_lang, $template, $subject, $templateVars, explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails), NULL, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, dirname(__FILE__).'/mails/'); Par : Mail::Send($id_lang, $template, $subject, $templateVars, explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails), NULL, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, NULL, dirname(__FILE__).'/mails/');
  6. Je vais encore travailler la question, mais je ne suis pas expert en développement, une petite aide serait la bienvenue
  7. Bonjour, Il semble que d'après mes recherches sur les forums, cette requête n'a jamais été évoquée. Voilà, je voudrai joindre automatiquement un fichier pdf qui contient les CGV lors de l'envoi du mail de commande. Ainsi une fois sa commande finie, l'utilisateur recevra un mail récapitulatif accompagné du fichier pdf. Pour cela je me suis penché sur 2 fichiers : classes/Mail.php et classes/PaymentModule.php Voici les modifications que j'ai effectués : Dans classes/PaymentModule.php, aux alentours de la ligne 360 : J'ai changé ceci : '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $currency, false, false)); if (is_array($extraVars)) $data = array_merge($data, $extraVars); // Join PDF invoice if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice AND $order->invoice_number) { $fileAttachment['content'] = PDF::invoice($order, 'S'); $fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', intval($order->id_lang)).sprintf('d', $order->invoice_number).'.pdf'; $fileAttachment['mime'] = 'application/pdf'; } else $fileAttachment = NULL; if ($orderStatus->send_email AND Validate::isEmail($customer->email)) Mail::Send(intval($order->id_lang), 'order_conf', 'Order confirmation', $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $this->currentOrder = intval($order->id); return true; } Par (ajout d'un bout code + modification de la fonction Mail::Send) : '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $currency, false, false)); if (is_array($extraVars)) $data = array_merge($data, $extraVars); // Joindre les CGV en PDF --- ON $PdfCGV['name'] = __PS_BASE_URI__ . 'CGV/CGV.pdf'; $PdfCGV['mime'] = 'application/pdf'; $PdfCGV['content'] = file_get_contents($PdfCGV['name']); // Joindre les CGV en PDF --- OFF // Join PDF invoice if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice AND $order->invoice_number) { $fileAttachment['content'] = PDF::invoice($order, 'S'); $fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', intval($order->id_lang)).sprintf('d', $order->invoice_number).'.pdf'; $fileAttachment['mime'] = 'application/pdf'; } else $fileAttachment = NULL; if ($orderStatus->send_email AND Validate::isEmail($customer->email)) Mail::Send(intval($order->id_lang), 'order_conf', 'Order confirmation', $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment /* Joindre les CGV en PDF --- ON*/ , $PdfCGV /* Joindre les CGV en PDF --- OFF */); $this->currentOrder = intval($order->id); return true; } Dans classes/Mail.php, aux alentours de la ligne 22 : J'ai changé ceci : static public function Send($id_lang, $template, $subject, $templateVars, $to, $toName = NULL, $from = NULL, $fromName = NULL, $fileAttachment = NULL, $modeSMTP = NULL, $templatePath = _PS_MAIL_DIR_) Par cela (ajout de la variable $PdfCGV) : static public function Send($id_lang, $template, $subject, $templateVars, $to, $toName = NULL, $from = NULL, $fromName = NULL, $fileAttachment = NULL, $modeSMTP = NULL, $templatePath = _PS_MAIL_DIR_, $PdfCGV) J'ai du omettre quelque chose, car cela ne semble pas fonctionner : aucun fichier pdf n'est attaché au mail. Si quelqu'un a une idée ? Merci bien.
  8. Bonjour à tous ! Tout d'abord un petit merci aux développeur de Prestashop qui ont fait un excellent travail Voilà, j'ai un soucis avec Prestashop, je n'ai eu aucun problème pour modifier toute la partie Css, j'ai même pu modifier les blocs selon ma charte graphique sans problème ! Je bute sur le header (header.tpl) en effet il n'y a qu'une variable {HOOK_TOP} assez déroutante d'ailleurs. J'ai bien compris que cette variable faisait le lien avec le positionnement des modules en back-office. Sauf que j'aimerai pouvoir modifier et déplacer chaque éléments au pixel près : déplacer le fil d'ariane, les infos panier, la ligne "bienvenue..", déplacer le bloc "rechercher" à un endroit précis.. Dans mon cas juste glisser les modules en back-office ne me suffise pas.. Donc je m'adresse à vous pour savoir si il y une solution ? Merci bien.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More