thomascube
2011-08-13 a02cfa9b085fc875fc55f57029a8e5846771ed5e
program/include/main.inc
@@ -92,6 +92,16 @@
  return rcmail::get_instance()->gettext($p, $domain);
}
/**
 * Global wrapper of rcmail::text_exists()
 * to check whether a text label is defined
 *
 * @see rcmail::text_exists()
 */
function rcube_label_exists($name, $domain=null)
{
  return rcmail::get_instance()->text_exists($name, $domain);
}
/**
 * Overwrite action variable
@@ -1067,7 +1077,18 @@
      $out .= date($format{$i}, $timestamp);
  }
  return $today ? (rcube_label('today') . ' ' . $out) : $out;
  if ($today) {
    $label = rcube_label('today');
    // replcae $ character with "Today" label (#1486120)
    if (strpos($out, '$') !== false) {
      $out = preg_replace('/\$/', $label, $out, 1);
    }
    else {
      $out = $label . ' ' . $out;
    }
  }
  return $out;
}
@@ -1278,12 +1299,12 @@
{
  global $RCMAIL;
  static $a_mailboxes;
  $attrib += array('maxlength' => 100, 'realnames' => false);
  // add some labels to client
  $RCMAIL->output->add_label('purgefolderconfirm', 'deletemessagesconfirm');
  $type = $attrib['type'] ? $attrib['type'] : 'ul';
  unset($attrib['type']);
@@ -1292,7 +1313,7 @@
  // get mailbox list
  $mbox_name = $RCMAIL->imap->get_mailbox_name();
  // build the folders tree
  if (empty($a_mailboxes)) {
    // get mailbox list
@@ -1307,20 +1328,20 @@
  // allow plugins to alter the folder tree or to localize folder names
  $hook = $RCMAIL->plugins->exec_hook('render_mailboxlist', array('list' => $a_mailboxes, 'delimiter' => $delimiter));
  if ($type=='select') {
  if ($type == 'select') {
    $select = new html_select($attrib);
    // add no-selection option
    if ($attrib['noselection'])
      $select->add(rcube_label($attrib['noselection']), '0');
      $select->add(rcube_label($attrib['noselection']), '');
    rcmail_render_folder_tree_select($hook['list'], $mbox_name, $attrib['maxlength'], $select, $attrib['realnames']);
    $out = $select->show();
  }
  else {
    $js_mailboxlist = array();
    $out = html::tag('ul', $attrib, rcmail_render_folder_tree_html($hook['list'], $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib);
    $RCMAIL->output->add_gui_object('mailboxlist', $attrib['id']);
    $RCMAIL->output->set_env('mailboxes', $js_mailboxlist);
    $RCMAIL->output->set_env('collapsed_folders', $RCMAIL->config->get('collapsed_folders'));
@@ -1339,7 +1360,7 @@
function rcmail_mailbox_select($p = array())
{
  global $RCMAIL;
  $p += array('maxlength' => 100, 'realnames' => false);
  $a_mailboxes = array();
@@ -1412,7 +1433,7 @@
  if (strlen($subFolders))
    rcmail_build_folder_tree($arrFolders[$currentFolder]['folders'], $subFolders, $delm, $path.$delm);
}
/**
 * Return html for a structured list <ul> for the mailbox tree
@@ -1422,7 +1443,7 @@
function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, &$jslist, $attrib, $nestLevel=0)
{
  global $RCMAIL, $CONFIG;
  $maxlength = intval($attrib['maxlength']);
  $realnames = (bool)$attrib['realnames'];
  $msgcounts = $RCMAIL->imap->get_cache('messagecount');
@@ -1465,15 +1486,15 @@
      $classes[] = 'inbox';
    else
      $classes[] = '_'.asciiwords($folder_class ? $folder_class : strtolower($folder['id']), true);
    $classes[] = $zebra_class;
    if ($folder['id'] == $mbox_name)
      $classes[] = 'selected';
    $collapsed = preg_match('/&'.rawurlencode($folder['id']).'&/', $RCMAIL->config->get('collapsed_folders'));
    $unread = $msgcounts ? intval($msgcounts[$folder['id']]['UNSEEN']) : 0;
    if ($folder['virtual'])
      $classes[] = 'virtual';
    else if ($unread)
@@ -1497,9 +1518,9 @@
        'style' => "position:absolute",
        'onclick' => sprintf("%s.command('collapse-folder', '%s')", JS_OBJECT_NAME, $js_name)
      ), ' ') : ''));
    $jslist[$folder_id] = array('id' => $folder['id'], 'name' => $foldername, 'virtual' => $folder['virtual']);
    if (!empty($folder['folders'])) {
      $out .= html::tag('ul', array('style' => ($collapsed ? "display:none;" : null)),
        rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $jslist, $attrib, $nestLevel+1));
@@ -1519,32 +1540,28 @@
 * @return string
 */
function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, &$select, $realnames=false, $nestLevel=0)
  {
  $idx = 0;
{
  $out = '';
  foreach ($arrFolders as $key=>$folder)
    {
  foreach ($arrFolders as $key=>$folder) {
    if (!$realnames && ($folder_class = rcmail_folder_classname($folder['id'])))
      $foldername = rcube_label($folder_class);
    else
      {
    else {
      $foldername = $folder['name'];
      // shorten the folder name to a given length
      if ($maxlength && $maxlength>1)
        $foldername = abbreviate_string($foldername, $maxlength);
      }
    }
    $select->add(str_repeat(' ', $nestLevel*4) . $foldername, $folder['id']);
    if (!empty($folder['folders']))
      $out .= rcmail_render_folder_tree_select($folder['folders'], $mbox_name, $maxlength, $select, $realnames, $nestLevel+1);
    $idx++;
    }
  }
  return $out;
  }
}
/**
@@ -1685,7 +1702,7 @@
{
  global $RCMAIL, $CONFIG;
  $hook = $RCMAIL->plugins->exec_hook('hmtl_editor', array('mode' => $mode));
  $hook = $RCMAIL->plugins->exec_hook('html_editor', array('mode' => $mode));
  if ($hook['abort'])
    return;  
@@ -1909,6 +1926,10 @@
  $domain = $is_utf ? idn_to_ascii($domain) : idn_to_utf8($domain);
  if ($domain === false) {
    return '';
  }
  return $at ? $user . '@' . $domain : $domain;
}