Merge branch 'v1'
[lhc/web/www.git] / www / plugins / facteur / classes / facteur.php
index ca3edab..daedf1e 100755 (executable)
@@ -89,13 +89,15 @@ class Facteur extends PHPMailer {
                        $this->AddCustomHeader("Errors-To: ".$this->Sender);\r
                }\r
 \r
-               if (!empty($options['cc'])) {\r
-                       $this->AddCC( $options['cc'] );\r
-               }\r
-               if (!empty($options['bcc'])) {\r
-                       $this->AddBCC( $options['bcc'] );\r
+               if (!defined('_TEST_EMAIL_DEST')){\r
+                       if (!empty($options['cc'])) {\r
+                               $this->AddCC( $options['cc'] );\r
+                       }\r
+                       if (!empty($options['bcc'])) {\r
+                               $this->AddBCC( $options['bcc'] );\r
+                       }\r
                }\r
-               \r
+\r
                if (isset($options['smtp']) AND $options['smtp'] == 'oui') {\r
                        $this->Mailer   = 'smtp';\r
                        $this->Host     = $options['smtp_host'];\r
@@ -141,94 +143,15 @@ class Facteur extends PHPMailer {
        }\r
        \r
        /*\r
-        * Transforme du HTML en texte brut, mais proprement, c'est-à-dire en essayant\r
-        * de garder les titrages, les listes, etc\r
+        * Transforme du HTML en texte brut, mais proprement\r
+        * utilise le filtre facteur_mail_html2text\r
+        * @uses facteur_mail_html2text()\r
         *\r
         * @param string $html Le HTML à transformer\r
         * @return string Retourne un texte brut formaté correctement\r
         */\r
        function html2text($html){\r
-               // On remplace tous les sauts de lignes par un espace\r
-               $html = str_replace("\n", ' ', $html);\r
-               \r
-               // Supprimer tous les liens internes\r
-               $texte = preg_replace("/\<a href=['\"]#(.*?)['\"][^>]*>(.*?)<\/a>/ims", "\\2", $html);\r
-       \r
-               // Supprime feuille style\r
-               $texte = preg_replace(";<style[^>]*>[^<]*</style>;i", "", $texte);\r
-       \r
-               // Remplace tous les liens      \r
-               $texte = preg_replace("/\<a[^>]*href=['\"](.*?)['\"][^>]*>(.*?)<\/a>/ims", "\\2 (\\1)", $texte);\r
-       \r
-               // Les titres\r
-               $texte = preg_replace(";<h1[^>]*>;i", "\n= ", $texte);\r
-               $texte = str_replace("</h1>", " =\n\n", $texte);\r
-               $texte = preg_replace(";<h2[^>]*>;i", "\n== ", $texte);\r
-               $texte = str_replace("</h2>", " ==\n\n", $texte);\r
-               $texte = preg_replace(";<h3[^>]*>;i", "\n=== ", $texte);\r
-               $texte = str_replace("</h3>", " ===\n\n", $texte);\r
-               \r
-               // Une fin de liste\r
-               $texte = preg_replace(";</(u|o)l>;i", "\n\n", $texte);\r
-               \r
-               // Une saut de ligne *après* le paragraphe\r
-               $texte = preg_replace(";<p[^>]*>;i", "\n", $texte);\r
-               $texte = preg_replace(";</p>;i", "\n\n", $texte);\r
-               // Les sauts de ligne interne\r
-               $texte = preg_replace(";<br[^>]*>;i", "\n", $texte);\r
-       \r
-               //$texte = str_replace('<br /><img class=\'spip_puce\' src=\'puce.gif\' alt=\'-\' border=\'0\'>', "\n".'-', $texte);\r
-               $texte = preg_replace (';<li[^>]*>;i', "\n".'- ', $texte);\r
-       \r
-       \r
-               // accentuation du gras\r
-               // <b>texte</b> -> **texte**\r
-               $texte = preg_replace (';<b[^>]*>;i','**' ,$texte);\r
-               $texte = str_replace ('</b>','**' ,$texte);\r
-       \r
-               // accentuation du gras\r
-               // <strong>texte</strong> -> **texte**\r
-               $texte = preg_replace (';<strong[^>]*>;i','**' ,$texte);\r
-               $texte = str_replace ('</strong>','**' ,$texte);\r
-       \r
-       \r
-               // accentuation de l'italique\r
-               // <em>texte</em> -> *texte*\r
-               $texte = preg_replace (';<em[^>]*>;i','/' ,$texte);\r
-               $texte = str_replace ('</em>','*' ,$texte);\r
-               \r
-               // accentuation de l'italique\r
-               // <i>texte</i> -> *texte*\r
-               $texte = preg_replace (';<i[^>]*>;i','/' ,$texte);\r
-               $texte = str_replace ('</i>','*' ,$texte);\r
-       \r
-               $texte = str_replace('&oelig;', 'oe', $texte);\r
-               $texte = str_replace("&nbsp;", " ", $texte);\r
-               $texte = filtrer_entites($texte);\r
-       \r
-               // On supprime toutes les balises restantes\r
-               $texte = supprimer_tags($texte);\r
-       \r
-               $texte = str_replace("\x0B", "", $texte); \r
-               $texte = str_replace("\t", "", $texte) ;\r
-               $texte = preg_replace(";[ ]{3,};", "", $texte);\r
-       \r
-               // espace en debut de ligne\r
-               $texte = preg_replace("/(\r\n|\n|\r)[ ]+/", "\n", $texte);\r
-       \r
-               //marche po\r
-               // Bring down number of empty lines to 4 max\r
-               $texte = preg_replace("/(\r\n|\n|\r){3,}/m", "\n\n", $texte);\r
-       \r
-               //saut de lignes en debut de texte\r
-               $texte = preg_replace("/^(\r\n|\n|\r)*/", "\n\n", $texte);\r
-               //saut de lignes en debut ou fin de texte\r
-               $texte = preg_replace("/(\r\n|\n|\r)*$/", "\n\n", $texte);\r
-       \r
-               // Faire des lignes de 75 caracteres maximum\r
-               //$texte = wordwrap($texte);\r
-       \r
-               return $texte;\r
+               return facteur_mail_html2text($html);\r
        }\r
        \r
        /**\r