alecpl
2010-01-25 580ff9c55e81aae04add43c95071c57e346a19ce
program/steps/mail/compose.inc
@@ -55,8 +55,8 @@
  
  // pipe compose parameters thru plugins
  $plugin = $RCMAIL->plugins->exec_hook('message_compose', $_SESSION['compose']);
  $_SESSION['compose']['param'] = $plugin['param'];
  $_SESSION['compose']['param'] = array_merge($_SESSION['compose']['param'], $plugin['param']);
  // add attachments listed by message_compose hook
  if (is_array($plugin['attachments'])) {
    foreach ($plugin['attachments'] as $attach) {
@@ -103,6 +103,7 @@
}
// set current mailbox in client environment
$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
$OUTPUT->set_env('sig_above', $CONFIG['sig_above']);
$OUTPUT->set_env('top_posting', $CONFIG['top_posting']);
// get reference message and set compose mode
@@ -117,12 +118,15 @@
  $compose_mode = RCUBE_COMPOSE_DRAFT;
}
if (!$CONFIG['show_sig'])
$config_show_sig = $RCMAIL->config->get('show_sig', 1);
if ($config_show_sig == 1)
  $OUTPUT->set_env('show_sig', true);
else if ($CONFIG['show_sig'] == 2 && empty($compose_mode))
else if ($config_show_sig == 2 && (empty($compose_mode) || $compose_mode == RCUBE_COMPOSE_EDIT || $compose_mode == RCUBE_COMPOSE_DRAFT))
  $OUTPUT->set_env('show_sig', true);
else if ($CONFIG['show_sig'] == 3 && ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD))
else if ($config_show_sig == 3 && ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD))
  $OUTPUT->set_env('show_sig', true);
else
  $OUTPUT->set_env('show_sig', false);
if (!empty($msg_uid))
{
@@ -441,10 +445,10 @@
    else if ($compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT)
      $body = rcmail_create_draft_body($body, $isHtml);
  }
  else if (!empty($_SESSION['compose']['param']['body']))
  {
    $body = $_SESSION['compose']['param']['body'];
  }
  $plugin = $RCMAIL->plugins->exec_hook('message_compose_body',
    array('body' => $body, 'html' => $isHtml, 'mode' => $compose_mode));
  $body = $plugin['body'];
  $out = $form_start ? "$form_start\n" : '';
@@ -518,18 +522,14 @@
function rcmail_create_reply_body($body, $bodyIsHtml)
{
  global $MESSAGE;
  $rcmail = rcmail::get_instance();
  global $RCMAIL, $MESSAGE;
  if (! $bodyIsHtml)
  {
  if (!$bodyIsHtml) {
    // try to remove the signature
    if (!$rcmail->config->get('top_posting') && ($sp = strrpos($body, '-- ')) !== false && ($sp == 0 || $body{$sp-1} == "\n"))
      {
    if ($RCMAIL->config->get('strip_existing_sig', true) && ($sp = strrpos($body, '-- ')) !== false && ($sp == 0 || $body{$sp-1} == "\n")) {
      if ($body{$sp+3}==' ' || $body{$sp+3}=="\n" || $body{$sp+3}=="\r")
        $body = substr($body, 0, max(0, $sp-1));
      }
    }
    // soft-wrap message first
    $body = rcmail_wrap_quoted($body, 75);
@@ -541,15 +541,15 @@
      $a_lines = preg_split('/\r?\n/', $body);
      // add > to each line
      for($n=0; $n<sizeof($a_lines); $n++) {
      for ($n=0; $n<sizeof($a_lines); $n++) {
        if (strpos($a_lines[$n], '>')===0)
          $a_lines[$n] = '>'.$a_lines[$n];
        else
          $a_lines[$n] = '> '.$a_lines[$n];
        }
      }
 
      $body = join("\n", $a_lines);
      }
    }
    // add title line(s)
    $prefix = rc_wordwrap(sprintf("On %s, %s wrote:\n",
@@ -557,12 +557,11 @@
      $MESSAGE->get_header('from')), 76);
    $suffix = '';
    if ($rcmail->config->get('top_posting'))
    if ($RCMAIL->config->get('top_posting'))
      $prefix = "\n\n\n" . $prefix;
  }
  else
  {
  else {
    // save inline images to files
    $cid_map = rcmail_write_inline_attachments($MESSAGE);
    // set is_safe flag (we need this for html body washing)
@@ -573,12 +572,12 @@
    // build reply (quote content)
    $prefix = sprintf("On %s, %s wrote:<br />\n",
      $MESSAGE->headers->date,
      htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $rcmail->output->get_charset()));
      htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $RCMAIL->output->get_charset()));
    $prefix .= '<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">';
    if ($rcmail->config->get('top_posting')) {
     $prefix = "<p></p>" . $prefix;
     $suffix = "</blockquote>";
    if ($RCMAIL->config->get('top_posting')) {
      $prefix = "<p></p>" . $prefix;
      $suffix = "</blockquote>";
    }
    else {
      $suffix = "</blockquote><p></p>";
@@ -616,7 +615,7 @@
    $body = rcmail_wash_html($body, array('safe' => $MESSAGE->is_safe), $cid_map);
    $prefix = sprintf(
      "<br><br>-------- Original Message --------" .
      "<p></p><p>-------- Original Message --------</p>" .
        "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tbody>" .
        "<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">Subject: </th><td>%s</td></tr>" .
        "<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">Date: </th><td>%s</td></tr>" .