Ho trovato un altro bug sull'invio delle email in formato HTML (mi stupisco che altri non li abbiano trovati

).
Quando si inserisce una email copiando l'html da un'altra email, l'editor in dotazione formatta il codice inserendo dei \r\n alle righe formattate. Quando queste email vengono spedite il metodo add_html della classe email converte tutti i \r\n in <br /> sformattando completamente il risultato, specialmente se nella email è presente una tabella con parecchie righe. Ho modificato a questo punto il codice del metodo in questa maniera per poter intervenire in modo mirato:
function add_html($html, $text = NULL, $images_dir = NULL, $noBR = FALSE) {
$this->html = preg_replace('/´/i', "'", $html);
$this->html = preg_replace('/'/', "'", $this->html);
if ($noBR==FALSE) $this->html = tep_convert_linefeeds(array("\r\n", "\n", "\r"), '<br />', $html);
// Replace ASCII CR and LF characters with the configured LF character.
// Needs to be done in two passes to prevent doubling of line spacing.
$this->html_text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), "xxCRLFxx", $text);
$this->html_text = tep_convert_linefeeds("xxCRLFxx", $this->lf, $this->html_text);
if (isset($images_dir)) $this->find_html_images($images_dir);
}
Così dove è necessario effettuiamo la sostituzione (comportamento di default), invece nelle newsletter e nell'email dell'admin è possibile settare a TRUE il valore della variabile $noBR e la sostituzione non avviene avendo un risultato ottimale