- Fix plaintext versions of HTML messages don't contain placeholders for emotions (#1485206)
| | |
| | | - Add possibility to move a subfolder into root folder (#1486791) |
| | | - Fix copying all messages in a folder copies only messages from current page |
| | | - Improve performance of moving or copying of all messages in a folder |
| | | - Fix plaintext versions of HTML messages don't contain placeholders for emotions (#1485206) |
| | | |
| | | RELEASE 0.5-BETA |
| | | ---------------- |
| | |
| | | |
| | | |
| | | /** |
| | | * Replaces TinyMCE's emoticon images with plain-text representation |
| | | * |
| | | * @param string HTML content |
| | | * @return string HTML content |
| | | */ |
| | | function rcmail_replace_emoticons($html) |
| | | { |
| | | $emoticons = array( |
| | | '8-)' => 'smiley-cool', |
| | | ':-#' => 'smiley-foot-in-mouth', |
| | | ':-*' => 'smiley-kiss', |
| | | ':-X' => 'smiley-sealed', |
| | | ':-P' => 'smiley-tongue-out', |
| | | ':-@' => 'smiley-yell', |
| | | ":'(" => 'smiley-cry', |
| | | ':-(' => 'smiley-frown', |
| | | ':-D' => 'smiley-laughing', |
| | | ':-)' => 'smiley-smile', |
| | | ':-/' => 'smiley-undecided', |
| | | ':-X' => 'smiley-embarassed', |
| | | '0:-)' => 'smiley-innocent', |
| | | ':-|' => 'smiley-money-mouth', |
| | | ':-0' => 'smiley-surprised', |
| | | ';-)' => 'smiley-wink', |
| | | ); |
| | | |
| | | foreach ($emoticons as $idx => $file) { |
| | | // <img title="Cry" src="http://.../program/js/tiny_mce/plugins/emotions/img/smiley-cry.gif" border="0" alt="Cry" /> |
| | | $search[] = '/<img title="[a-z ]+" src="https?:\/\/[a-z0-9_.\/-]+\/tiny_mce\/plugins\/emotions\/img\/'.$file.'.gif"[^>]+\/>/i'; |
| | | $replace[] = $idx; |
| | | } |
| | | |
| | | return preg_replace($search, $replace, $html); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Check if working in SSL mode |
| | | * |
| | | * @param integer HTTPS port number |
| | |
| | | flush(); |
| | | } |
| | | } |
| | | |
| | |
| | | function rcmail_get_identity($id) |
| | | { |
| | | global $USER, $OUTPUT; |
| | | |
| | | |
| | | if ($sql_arr = $USER->get_identity($id)) { |
| | | $out = $sql_arr; |
| | | $out['mailto'] = $sql_arr['email']; |
| | |
| | | |
| | | // remove any null-byte characters before parsing |
| | | $body = preg_replace('/\x00/', '', $body); |
| | | |
| | | |
| | | $searchstr = 'program/js/tiny_mce/plugins/emotions/img/'; |
| | | $offset = 0; |
| | | |
| | |
| | | |
| | | return implode(', ', $result); |
| | | } |
| | | |
| | | |
| | | /****** compose message ********/ |
| | | |
| | |
| | | |
| | | $MAIL_MIME->setHTMLBody($plugin['body']); |
| | | |
| | | // replace emoticons |
| | | $plugin['body'] = rcmail_replace_emoticons($plugin['body']); |
| | | |
| | | // add a plain text version of the e-mail as an alternative part. |
| | | $h2t = new html2text($plugin['body'], false, true, 0); |
| | | $plainTextPart = rc_wordwrap($h2t->get_text(), $LINE_LENGTH, "\r\n"); |
| | | $plainTextPart = wordwrap($plainTextPart, 998, "\r\n", true); |
| | | if (!$plainTextPart) { |
| | | // empty message body breaks attachment handling in drafts |
| | | $plainTextPart = "\r\n"; |
| | | // empty message body breaks attachment handling in drafts |
| | | $plainTextPart = "\r\n"; |
| | | } |
| | | else { |
| | | // make sure all line endings are CRLF (#1486712) |
| | |
| | | |
| | | */ |
| | | |
| | | $converter = new html2text($HTTP_RAW_POST_DATA); |
| | | $html = $HTTP_RAW_POST_DATA; |
| | | |
| | | // Replace emoticon images with its text representation |
| | | $html = rcmail_replace_emoticons($html); |
| | | |
| | | $converter = new html2text($html); |
| | | |
| | | header('Content-Type: text/plain; charset=UTF-8'); |
| | | print rtrim($converter->get_text()); |