roundcubemail/program/lib/Roundcube/rcube_imap.php
public function index_direct($folder, $sort_field = null, $sort_order = null, $search = null)
    {
        if (!empty($search)) {
            $search = $search->get_compressed();
        }

        // use message index sort as default sorting
        if (!$sort_field) {
            // use search result from count() if possible
            if (empty($search) && $this->options['skip_deleted']
                && !empty($this->icache['undeleted_idx'])
                && $this->icache['undeleted_idx']->get_parameters('ALL') !== null
                && $this->icache['undeleted_idx']->get_parameters('MAILBOX') == $folder
            ) {
                $index = $this->icache['undeleted_idx'];
            }
            else if (!$this->check_connection()) {
                return new rcube_result_index();
            }
            else {
                $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
                if ($search) {
                    $query = trim($query . ' UID ' . $search);
                }

                $index = $this->conn->search($folder, $query, true);
            }
        }
        else if (!$this->check_connection()) {
            return new rcube_result_index();
        }
        // fetch complete message index
        else {
            if ($this->get_capability('SORT')) {
                $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
                if ($search) {
                    $query = trim($query . ' UID ' . $search);
                }

                $index = $this->conn->sort($folder, $sort_field, $query, true);
            }

            if (empty($index) || $index->is_error()) {
                $index = $this->conn->index($folder, $search ? $search : "1:*",
                    $sort_field, $this->options['skip_deleted'],
                    $search ? true : false, true);
            }
        }

        if ($sort_order != $index->get_parameters('ORDER')) {
            $index->revert();
        }

        return $index;
    }
public function index_direct($folder, $sort_field = null, $sort_order = null, $search = null)
    {
        if (!empty($search)) {
            $search = $search->get_compressed();
        }

        // use message index sort as default sorting
        if (!$sort_field) {
            // use search result from count() if possible
            if (empty($search) && $this->options['skip_deleted']
                && !empty($this->icache['undeleted_idx'])
                && $this->icache['undeleted_idx']->get_parameters('ALL') !== null
                && $this->icache['undeleted_idx']->get_parameters('MAILBOX') == $folder
            ) {
                $index = $this->icache['undeleted_idx'];
            }
            else if (!$this->check_connection()) {
                return new rcube_result_index();
            }
            else {
                $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
                if ($search) {
                    $query = trim($query . ' UID ' . $search);
                }

                $index = $this->conn->search($folder, $query, true);
            }
        }
        else if (!$this->check_connection()) {
            return new rcube_result_index();
        }
        // fetch complete message index
        else {
            if ($this->get_capability('SORT')) {
                $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
                if ($search) {
                    $query = trim($query . ' UID ' . $search);
                }

                $index = $this->conn->sort($folder, $sort_field, $query, true);
            }

            if (empty($index) || $index->is_error()) {
                $index = $this->conn->index($folder, $search ? $search : "1:*",
                    $sort_field, $this->options['skip_deleted'],
                    $search ? true : false, true);
            }
        }

        if ($sort_order != $index->get_parameters('ORDER')) {
            $index->revert();
        }

        return $index;
    }
public function index_direct ( $ folder , $ sort_field = null , $ sort_order = null , $ search = null ) { if ( ! empty ( $ search ) ) { $ search = $ search -> get_compressed ( ) ; } // use message index sort as default sorting if ( ! $ sort_field ) { // use search result from count() if possible if ( empty ( $ search ) && $ this -> options [ 'skip_deleted' ] && ! empty ( $ this -> icache [ 'undeleted_idx' ] ) && $ this -> icache [ 'undeleted_idx' ] -> get_parameters ( 'ALL' ) !== null && $ this -> icache [ 'undeleted_idx' ] -> get_parameters ( 'MAILBOX' ) == $ folder ) { $ index = $ this -> icache [ 'undeleted_idx' ] ; } else if ( ! $ this -> check_connection ( ) ) { return new rcube_result_index ( ) ; } else { $ query = $ this -> options [ 'skip_deleted' ] ? 'UNDELETED' : '' ; if ( $ search ) { $ query = trim ( $ query . ' UID ' . $ search ) ; } $ index = $ this -> conn -> search ( $ folder , $ query , true ) ; } } else if ( ! $ this -> check_connection ( ) ) { return new rcube_result_index ( ) ; } // fetch complete message index else { if ( $ this -> get_capability ( 'SORT' ) ) { $ query = $ this -> options [ 'skip_deleted' ] ? 'UNDELETED' : '' ; if ( $ search ) { $ query = trim ( $ query . ' UID ' . $ search ) ; } $ index = $ this -> conn -> sort ( $ folder , $ sort_field , $ query , true ) ; } if ( empty ( $ index ) || $ index -> is_error ( ) ) { $ index = $ this -> conn -> index ( $ folder , $ search ? $ search : "1:*" , $ sort_field , $ this -> options [ 'skip_deleted' ] , $ search ? true : false , true ) ; } } if ( $ sort_order != $ index -> get_parameters ( 'ORDER' ) ) { $ index -> revert ( ) ; } return $ index ; }
Return sorted list of message UIDs ignoring current search settings.
Doesn't uses cache by default.

@param string         $folder     Folder to get index from
@param string         $sort_field Sort column
@param string         $sort_order Sort order [ASC, DESC]
@param rcube_result_* $search     Optional messages set to limit the result

@return rcube_result_index Sorted list of message UIDs
Return sorted list of message UIDs ignoring current search settings . Doesn t uses cache by default .