roundcubemail/program/lib/Roundcube/rcube_imap.php
protected function sort_threads($threads)
    {
        if ($threads->is_empty()) {
            return;
        }

        // THREAD=ORDEREDSUBJECT: sorting by sent date of root message
        // THREAD=REFERENCES:     sorting by sent date of root message
        // THREAD=REFS:           sorting by the most recent date in each thread

        if ($this->threading != 'REFS' || ($this->sort_field && $this->sort_field != 'date')) {
            $sortby = $this->sort_field ? $this->sort_field : 'date';
            $index  = $this->index($this->folder, $sortby, $this->sort_order, true, true);

            if (!$index->is_empty()) {
                $threads->sort($index);
            }
        }
        else if ($this->sort_order != $threads->get_parameters('ORDER')) {
            $threads->revert();
        }
    }
protected function sort_threads($threads)
    {
        if ($threads->is_empty()) {
            return;
        }

        // THREAD=ORDEREDSUBJECT: sorting by sent date of root message
        // THREAD=REFERENCES:     sorting by sent date of root message
        // THREAD=REFS:           sorting by the most recent date in each thread

        if ($this->threading != 'REFS' || ($this->sort_field && $this->sort_field != 'date')) {
            $sortby = $this->sort_field ? $this->sort_field : 'date';
            $index  = $this->index($this->folder, $sortby, $this->sort_order, true, true);

            if (!$index->is_empty()) {
                $threads->sort($index);
            }
        }
        else if ($this->sort_order != $threads->get_parameters('ORDER')) {
            $threads->revert();
        }
    }
protected function sort_threads ( $ threads ) { if ( $ threads -> is_empty ( ) ) { return ; } // THREAD=ORDEREDSUBJECT: sorting by sent date of root message // THREAD=REFERENCES:     sorting by sent date of root message // THREAD=REFS:           sorting by the most recent date in each thread if ( $ this -> threading != 'REFS' || ( $ this -> sort_field && $ this -> sort_field != 'date' ) ) { $ sortby = $ this -> sort_field ? $ this -> sort_field : 'date' ; $ index = $ this -> index ( $ this -> folder , $ sortby , $ this -> sort_order , true , true ) ; if ( ! $ index -> is_empty ( ) ) { $ threads -> sort ( $ index ) ; } } else if ( $ this -> sort_order != $ threads -> get_parameters ( 'ORDER' ) ) { $ threads -> revert ( ) ; } }
Sort threaded result, using THREAD=REFS method if available.
If not, use any method and re-sort the result in THREAD=REFS way.

@param rcube_result_thread $threads Threads result set
Sort threaded result using THREAD = REFS method if available . If not use any method and re - sort the result in THREAD = REFS way .