| | |
| | | if (!empty($opt)) |
| | | { |
| | | $db = &rcmail::get_instance()->db; |
| | | $dbclass = 'rcube_mdb2'; |
| | | |
| | | if ($db->db_provider=='pgsql' && ($db instanceof $dbclass)) |
| | | if ($db->db_provider=='pgsql') |
| | | { |
| | | $db->db_handle->setOption('disable_smart_seqname', true); |
| | | $db->db_handle->setOption('seqname_format', '%s'); |
| | |
| | | date("d-M-Y H:i:s O", mktime()), |
| | | $line); |
| | | |
| | | if (empty($CONFIG['log_dir'])) |
| | | $CONFIG['log_dir'] = INSTALL_PATH.'logs'; |
| | | if ($CONFIG['log_driver'] == 'syslog') { |
| | | if ($name == 'errors') |
| | | $prio = LOG_ERR; |
| | | else |
| | | $prio = LOG_INFO; |
| | | syslog($prio, $log_entry); |
| | | } else { |
| | | // log_driver == 'file' is assumed here |
| | | if (empty($CONFIG['log_dir'])) |
| | | $CONFIG['log_dir'] = INSTALL_PATH.'logs'; |
| | | |
| | | // try to open specific log file for writing |
| | | if ($fp = @fopen($CONFIG['log_dir'].'/'.$name, 'a')) |
| | | { |
| | | fwrite($fp, $log_entry); |
| | | fclose($fp); |
| | | // try to open specific log file for writing |
| | | if ($fp = @fopen($CONFIG['log_dir'].'/'.$name, 'a')) { |
| | | fwrite($fp, $log_entry); |
| | | fclose($fp); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | { |
| | | global $IMAP, $OUTPUT; |
| | | static $a_mailboxes; |
| | | |
| | | $attrib += array('maxlength' => 100, 'relanames' => false); |
| | | |
| | | // add some labels to client |
| | | rcube_add_label('purgefolderconfirm'); |
| | |
| | | if ($attrib['noselection']) |
| | | $select->add(rcube_label($attrib['noselection']), '0'); |
| | | |
| | | rcmail_render_folder_tree_select($a_mailboxes, $mbox_name, $attrib['maxlength'], $select); |
| | | rcmail_render_folder_tree_select($a_mailboxes, $mbox_name, $attrib['maxlength'], $select, $attrib['realnames']); |
| | | $out = $select->show(); |
| | | } |
| | | else { |
| | | $out = html::tag('ul', $attrib, rcmail_render_folder_tree_html($a_mailboxes, $mbox_name, $attrib['maxlength']), html::$common_attrib); |
| | | $out = html::tag('ul', $attrib, rcmail_render_folder_tree_html($a_mailboxes, $mbox_name, $attrib['maxlength'], $attrib['realnames']), html::$common_attrib); |
| | | } |
| | | |
| | | if ($type=='ul') |
| | |
| | | { |
| | | global $RCMAIL; |
| | | |
| | | $p += array('maxlength' => 100); |
| | | $p += array('maxlength' => 100, 'relanames' => false); |
| | | $a_mailboxes = array(); |
| | | |
| | | foreach ($RCMAIL->imap->list_mailboxes() as $folder) |
| | |
| | | if ($p['noselection']) |
| | | $select->add($p['noselection'], ''); |
| | | |
| | | rcmail_render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select); |
| | | rcmail_render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select, $p['realnames']); |
| | | |
| | | return $select; |
| | | } |
| | |
| | | * Return html for a structured list <ul> for the mailbox tree |
| | | * @access private |
| | | */ |
| | | function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $nestLevel=0) |
| | | function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $realnames=false, $nestLevel=0) |
| | | { |
| | | global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT; |
| | | global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT, $RCMAIL; |
| | | |
| | | $idx = 0; |
| | | $out = ''; |
| | |
| | | $zebra_class = (($nestLevel+1)*$idx) % 2 == 0 ? 'even' : 'odd'; |
| | | $title = null; |
| | | |
| | | if ($folder_class = rcmail_folder_classname($folder['id'])) |
| | | if (($folder_class = rcmail_folder_classname($folder['id'])) && !$realnames) |
| | | $foldername = rcube_label($folder_class); |
| | | else |
| | | { |
| | |
| | | if ($folder['id'] == $mbox_name) |
| | | $classes[] = 'selected'; |
| | | |
| | | $collapsed = preg_match('/&'.rawurlencode($folder['id']).'&/', $RCMAIL->config->get('collapsed_folders')); |
| | | |
| | | $js_name = JQ($folder['id']); |
| | | $out .= html::tag('li', array( |
| | | 'id' => "rcmli".$folder_id, |
| | | 'class' => join(' ', $classes), |
| | | 'noclose' => true), |
| | | html::div(array( |
| | | 'class' => empty($folder['folders']) ? 'nocollapse' : ($collapsed ? 'collapsed' : 'expanded'), |
| | | 'onclick' => sprintf("%s.command('collapse-folder', '%s')", JS_OBJECT_NAME, $js_name) |
| | | ), ' ') . |
| | | html::a(array( |
| | | 'href' => rcmail_url('', array('_mbox' => $folder['id'])), |
| | | 'onclick' => sprintf("return %s.command('list','%s',this)", JS_OBJECT_NAME, $js_name), |
| | |
| | | ), Q($foldername))); |
| | | |
| | | if (!empty($folder['folders'])) |
| | | $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $nestLevel+1) . "</ul>\n"; |
| | | $out .= "\n<ul" . ($collapsed ? " style=\"display: none;\"" : "") . ">\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $realnames, $nestLevel+1) . "</ul>\n"; |
| | | |
| | | $out .= "</li>\n"; |
| | | $idx++; |
| | | } |
| | | |
| | | $OUTPUT->set_env('collapsed_folders', $RCMAIL->config->get('collapsed_folders')); |
| | | |
| | | return $out; |
| | | } |
| | |
| | | * Return html for a flat list <select> for the mailbox tree |
| | | * @access private |
| | | */ |
| | | function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, &$select, $nestLevel=0) |
| | | function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, &$select, $realnames=false, $nestLevel=0) |
| | | { |
| | | global $IMAP, $OUTPUT; |
| | | |
| | |
| | | $out = ''; |
| | | foreach ($arrFolders as $key=>$folder) |
| | | { |
| | | if ($folder_class = rcmail_folder_classname($folder['id'])) |
| | | if (!$realnames && ($folder_class = rcmail_folder_classname($folder['id']))) |
| | | $foldername = rcube_label($folder_class); |
| | | else |
| | | { |
| | |
| | | $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, $nestLevel+1); |
| | | $out .= rcmail_render_folder_tree_select($folder['folders'], $mbox_name, $maxlength, $select, $realnames, $nestLevel+1); |
| | | |
| | | $idx++; |
| | | } |