Changeset 0b5539e in github


Ignore:
Timestamp:
Dec 6, 2008 1:52:18 PM (5 years ago)
Author:
alecpl <alec@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
3c884af
Parents:
9c705b7
Message:
  • Fix sorting of folders with more than 2 levels (#1485569)
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r3552158 r0b5539e  
    11CHANGELOG RoundCube Webmail 
    22--------------------------- 
     3 
     42008/12/06 (alec) 
     5---------- 
     6- Fix sorting of folders with more than 2 levels (#1485569) 
    37 
    482008/12/04 (alec) 
  • program/include/rcube_config.php

    r1ce913b r0b5539e  
    7676    $this->prop['temp_dir'] = $this->prop['temp_dir'] ? unslashify($this->prop['temp_dir']) : INSTALL_PATH . 'temp'; 
    7777 
    78     // fix default imap folders encode 
    79     foreach (Array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox') as $folder) 
     78    // fix default imap folders encoding 
     79    foreach (array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox') as $folder) 
    8080      $this->prop[$folder] = rcube_charset_convert($this->prop[$folder], RCMAIL_CHARSET, 'UTF-7'); 
    8181 
    82     foreach ($this->prop['default_imap_folders'] as $n => $folder) 
    83       $this->prop['default_imap_folders'][$n] = rcube_charset_convert($folder, RCMAIL_CHARSET, 'UTF-7'); 
     82    if (!empty($this->prop['default_imap_folders'])) 
     83      foreach ($this->prop['default_imap_folders'] as $n => $folder) 
     84        $this->prop['default_imap_folders'][$n] = rcube_charset_convert($folder, RCMAIL_CHARSET, 'UTF-7'); 
    8485 
    8586    // set PHP error logging according to config 
  • program/include/rcube_imap.php

    r57a92b5 r0b5539e  
    27122712      } 
    27132713 
     2714    // sort folders and place defaults on the top 
    27142715    asort($folders, SORT_LOCALE_STRING); 
    27152716    ksort($a_defaults); 
    2716  
    27172717    $folders = array_merge($a_defaults, array_keys($folders)); 
    27182718 
     
    27212721    // ...also do this for the rest of folders because 
    27222722    // asort() is not properly sorting case sensitive names 
    2723  
    2724     // set the type of folder name variable (#1485527)  
    27252723    while (list($key, $folder) = each($folders)) { 
     2724      // set the type of folder name variable (#1485527)  
    27262725      $a_out[] = (string) $folder; 
    27272726      unset($folders[$key]); 
    2728       foreach ($folders as $idx => $f) { 
    2729         if (strpos($f, $folder.$delimiter) === 0) { 
    2730           $a_out[] = (string) $f; 
    2731           unset($folders[$idx]); 
     2727      $this->_rsort($folder, $delimiter, $folders, $a_out);      
     2728      } 
     2729 
     2730    return $a_out; 
     2731    } 
     2732 
     2733 
     2734  /** 
     2735   * @access private 
     2736   */ 
     2737  function _rsort($folder, $delimiter, &$list, &$out) 
     2738    { 
     2739      while (list($key, $name) = each($list)) { 
     2740        if (strpos($name, $folder.$delimiter) === 0) { 
     2741          // set the type of folder name variable (#1485527)  
     2742          $out[] = (string) $name; 
     2743          unset($list[$key]); 
     2744          $this->_rsort($name, $delimiter, $list, $out); 
    27322745          } 
    27332746        } 
    2734       reset($folders);   
    2735       } 
    2736  
    2737     return $a_out; 
    2738     } 
     2747      reset($list);      
     2748    } 
     2749 
    27392750 
    27402751  /** 
Note: See TracChangeset for help on using the changeset viewer.