roundcubemail/program/include/rcmail.php
public function folder_selector($p = array())
    {
        $realnames = $this->config->get('show_real_foldernames');
        $p += array('maxlength' => 100, 'realnames' => $realnames, 'is_escaped' => true);
        $a_mailboxes = array();
        $storage = $this->get_storage();

        if (empty($p['folder_name'])) {
            $p['folder_name'] = '*';
        }

        if ($p['unsubscribed']) {
            $list = $storage->list_folders('', $p['folder_name'], $p['folder_filter'], $p['folder_rights']);
        }
        else {
            $list = $storage->list_folders_subscribed('', $p['folder_name'], $p['folder_filter'], $p['folder_rights']);
        }

        $delimiter = $storage->get_hierarchy_delimiter();

        if (!empty($p['exceptions'])) {
            $list = array_diff($list, (array) $p['exceptions']);
        }

        if (!empty($p['additional'])) {
            foreach ($p['additional'] as $add_folder) {
                $add_items = explode($delimiter, $add_folder);
                $folder    = '';
                while (count($add_items)) {
                    $folder .= array_shift($add_items);

                    // @TODO: sorting
                    if (!in_array($folder, $list)) {
                        $list[] = $folder;
                    }

                    $folder .= $delimiter;
                }
            }
        }

        foreach ($list as $folder) {
            $this->build_folder_tree($a_mailboxes, $folder, $delimiter);
        }

        $select = new html_select($p);

        if ($p['noselection']) {
            $select->add(html::quote($p['noselection']), '');
        }

        $this->render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select, $p['realnames'], 0, $p);

        return $select;
    }
public function folder_selector($p = array())
    {
        $realnames = $this->config->get('show_real_foldernames');
        $p += array('maxlength' => 100, 'realnames' => $realnames, 'is_escaped' => true);
        $a_mailboxes = array();
        $storage = $this->get_storage();

        if (empty($p['folder_name'])) {
            $p['folder_name'] = '*';
        }

        if ($p['unsubscribed']) {
            $list = $storage->list_folders('', $p['folder_name'], $p['folder_filter'], $p['folder_rights']);
        }
        else {
            $list = $storage->list_folders_subscribed('', $p['folder_name'], $p['folder_filter'], $p['folder_rights']);
        }

        $delimiter = $storage->get_hierarchy_delimiter();

        if (!empty($p['exceptions'])) {
            $list = array_diff($list, (array) $p['exceptions']);
        }

        if (!empty($p['additional'])) {
            foreach ($p['additional'] as $add_folder) {
                $add_items = explode($delimiter, $add_folder);
                $folder    = '';
                while (count($add_items)) {
                    $folder .= array_shift($add_items);

                    // @TODO: sorting
                    if (!in_array($folder, $list)) {
                        $list[] = $folder;
                    }

                    $folder .= $delimiter;
                }
            }
        }

        foreach ($list as $folder) {
            $this->build_folder_tree($a_mailboxes, $folder, $delimiter);
        }

        $select = new html_select($p);

        if ($p['noselection']) {
            $select->add(html::quote($p['noselection']), '');
        }

        $this->render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select, $p['realnames'], 0, $p);

        return $select;
    }
public function folder_selector ( $ p = array ( ) ) { $ realnames = $ this -> config -> get ( 'show_real_foldernames' ) ; $ p += array ( 'maxlength' => 100 , 'realnames' => $ realnames , 'is_escaped' => true ) ; $ a_mailboxes = array ( ) ; $ storage = $ this -> get_storage ( ) ; if ( empty ( $ p [ 'folder_name' ] ) ) { $ p [ 'folder_name' ] = '*' ; } if ( $ p [ 'unsubscribed' ] ) { $ list = $ storage -> list_folders ( '' , $ p [ 'folder_name' ] , $ p [ 'folder_filter' ] , $ p [ 'folder_rights' ] ) ; } else { $ list = $ storage -> list_folders_subscribed ( '' , $ p [ 'folder_name' ] , $ p [ 'folder_filter' ] , $ p [ 'folder_rights' ] ) ; } $ delimiter = $ storage -> get_hierarchy_delimiter ( ) ; if ( ! empty ( $ p [ 'exceptions' ] ) ) { $ list = array_diff ( $ list , ( array ) $ p [ 'exceptions' ] ) ; } if ( ! empty ( $ p [ 'additional' ] ) ) { foreach ( $ p [ 'additional' ] as $ add_folder ) { $ add_items = explode ( $ delimiter , $ add_folder ) ; $ folder = '' ; while ( count ( $ add_items ) ) { $ folder .= array_shift ( $ add_items ) ; // @TODO: sorting if ( ! in_array ( $ folder , $ list ) ) { $ list [ ] = $ folder ; } $ folder .= $ delimiter ; } } } foreach ( $ list as $ folder ) { $ this -> build_folder_tree ( $ a_mailboxes , $ folder , $ delimiter ) ; } $ select = new html_select ( $ p ) ; if ( $ p [ 'noselection' ] ) { $ select -> add ( html :: quote ( $ p [ 'noselection' ] ) , '' ) ; } $ this -> render_folder_tree_select ( $ a_mailboxes , $ mbox , $ p [ 'maxlength' ] , $ select , $ p [ 'realnames' ] , 0 , $ p ) ; return $ select ; }
Return folders list as html_select object

@param array $p Named parameters

@return html_select HTML drop-down object
Return folders list as html_select object