Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function category_search($args = array()) {
- // Get the category
- $category = get_input_value('_srchcat', RCUBE_INPUT_GET);
- // reset list_page and old search results
- $this->rc->imap->set_page(1);
- $this->rc->imap->set_search_set(NULL);
- $_SESSION['page'] = 1;
- $page = get_input_value('_page', RCUBE_INPUT_GET);
- // Get the page and id
- $page = $page ? $page : 1;
- $id = get_input_value('_id', RCUBE_INPUT_GET);
- // Check the sort settings
- if ($sort = get_input_value('_sort', RCUBE_INPUT_GET)) {
- list($sort_col, $sort_order) = explode('_', $sort);
- // set session vars for sort (so next page and task switch know how to sort)
- $save_arr = array();
- $_SESSION['sort_col'] = $save_arr['message_sort_col'] = $sort_col;
- $_SESSION['sort_order'] = $save_arr['message_sort_order'] = $sort_order;
- } else {
- // use session settings if set, defaults if not
- $sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $this->rc->config->get('message_sort_col');
- $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $this->rc->config->get('message_sort_order');
- }
- // Get the search terms
- $filters = array();
- $searchterms = $this->get_search_terms($category, $filters);
- // Set the search request id for the session
- $search_request = md5('INBOX'.$filters.$searchterms);
- // Do the search
- $result_h = $this->perform_category_search($searchterms, $filters);
- $count = count($result_h);
- $_SESSION['search'] = $this->rc->imap->get_search_set();
- $_SESSION['last_text_search'] = implode(',',$searchterms);
- $_SESSION['search_request'] = $search_request;
- // Sort the results
- //$this->sort_search_results();
- //print_r($result_h); //TODO: Delete line
- // Display the list
- if (!empty($result_h)) {
- rcmail_js_message_list($result_h, TRUE);
- $this->rc->output->show_message('searchsuccessful', 'confirmation', array('nr' => $count));
- } elseif ($err_code = $this->rc->imap->get_error_code()) {
- rcmail_display_server_error();
- } else {
- // No results could be found, show the error results
- $searchterms = $this->get_search_terms('Company A, Company B', $filters);
- $result_h = $this->perform_category_search($searchterms, $filters);
- //print_r($result_h); //TODO: Delete line
- if (!empty($result_h)) rcmail_js_message_list($result_h, TRUE);
- $this->rc->output->show_message('searchnomatch', 'notice');
- }
- // Update the environment setings
- $this->rc->output->set_env('search_request', $filters ? $search_request : '');
- $this->rc->output->set_env('messagecount', $count);
- $this->rc->output->set_env('pagecount', 1);
- $this->rc->output->command('set_rowcount', rcmail_get_messagecount_text($count, $page));
- $this->rc->output->send('mail');
- exit;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement