Mercurial > hg > rc1
comparison plugins/advanced_search/advanced_search.php.orig @ 41:d2414df68d78
Updated by Alex S Grebenschikov (www.poralix.com)
to make it compatible with RoundCube 1.3.0
| author | Charlie Root |
|---|---|
| date | Fri, 24 Jan 2025 14:20:15 -0500 |
| parents | 50ac5484d514 |
| children |
comparison
equal
deleted
inserted
replaced
| 40:3ea4a836c377 | 41:d2414df68d78 |
|---|---|
| 1 <?php | 1 <?php |
| 2 /** | 2 /** |
| 3 * Processing an advanced search over an E-Mail Account | 3 * Processing an advanced search over an E-Mail Account |
| 4 * | 4 * |
| 5 * @version 2.1.6 | 5 * @version 2.1.5 |
| 6 * @licence GNU GPLv3+ | 6 * @licence GNU GPLv3+ |
| 7 * @author Wilwert Claude | 7 * @author Wilwert Claude |
| 8 * @author Ludovicy Steve | 8 * @author Ludovicy Steve |
| 9 * @author Chris Moules | 9 * @author Chris Moules |
| 10 * @website http://www.gms.lu | 10 * @website http://www.gms.lu |
| 11 * | |
| 12 * Updated by Alex S Grebenschikov (www.poralix.com) | |
| 13 * to make it compatible with RoundCube 1.3.0 | |
| 14 * Last modified: Tue Aug 1 06:41:46 CEST 2017 | |
| 15 * | |
| 11 */ | 16 */ |
| 12 | 17 |
| 13 class advanced_search extends rcube_plugin | 18 class advanced_search extends rcube_plugin |
| 14 { | 19 { |
| 15 | 20 |
| 64 if(isset($this->config['criteria'])) { | 69 if(isset($this->config['criteria'])) { |
| 65 foreach($this->config['criteria'] as $key => $translation) { | 70 foreach($this->config['criteria'] as $key => $translation) { |
| 66 $this->config['criteria'][$key] = $this->gettext($key); | 71 $this->config['criteria'][$key] = $this->gettext($key); |
| 67 } | 72 } |
| 68 } | 73 } |
| 69 $this->include_script('advanced_search.min.js'); | 74 $this->include_script('advanced_search.js'); |
| 70 | 75 |
| 71 if ($this->rc->task == 'mail') { | 76 if ($this->rc->task == 'mail') { |
| 72 $file = 'skins/' . $this->skin . '/advanced_search.css'; | 77 $file = 'skins/' . $this->skin . '/advanced_search.css'; |
| 73 | 78 |
| 74 if (file_exists($this->home . '/' . $file)) { | 79 if (file_exists($this->home . '/' . $file)) { |
| 96 } | 101 } |
| 97 | 102 |
| 98 | 103 |
| 99 public function startup($args) | 104 public function startup($args) |
| 100 { | 105 { |
| 101 $search = get_input_value('_search', RCUBE_INPUT_GET); | 106 $search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GET); |
| 102 if (!isset($search)) { | 107 if (!isset($search)) { |
| 103 $search = get_input_value('_search', RCUBE_INPUT_POST); | 108 $search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_POST); |
| 104 } | 109 } |
| 105 $rsearch = $search == 'advanced_search_active'; | 110 $rsearch = $search == 'advanced_search_active'; |
| 106 $uid = get_input_value('_uid', RCUBE_INPUT_GET); | 111 $uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET); |
| 107 $draft_uid = get_input_value('_draft_uid', RCUBE_INPUT_GET); | 112 $draft_uid = rcube_utils::get_input_value('_draft_uid', rcube_utils::INPUT_GET); |
| 108 $mbox = get_input_value('_mbox', RCUBE_INPUT_GET); | 113 $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GET); |
| 109 $page = get_input_value('_page', RCUBE_INPUT_GET); | 114 $page = rcube_utils::get_input_value('_page', rcube_utils::INPUT_GET); |
| 110 $sort = get_input_value('_sort', RCUBE_INPUT_GET); | 115 $sort = rcube_utils::get_input_value('_sort', rcube_utils::INPUT_GET); |
| 111 | 116 |
| 112 if (!empty($uid)) { | 117 if (!empty($uid)) { |
| 113 $parts = explode('__MB__', $uid); | 118 $parts = explode('__MB__', $uid); |
| 114 if (count($parts) == 2) { | 119 if (count($parts) == 2) { |
| 115 $search = 'advanced_search_active'; | 120 $search = 'advanced_search_active'; |
| 127 $parts = explode('__MB__', $uid); | 132 $parts = explode('__MB__', $uid); |
| 128 $uid = $parts[0]; | 133 $uid = $parts[0]; |
| 129 $this->rc->output->redirect(array('_task' => 'mail', '_action' => $args['action'], '_mbox' => $mbox, '_uid' => $uid)); | 134 $this->rc->output->redirect(array('_task' => 'mail', '_action' => $args['action'], '_mbox' => $mbox, '_uid' => $uid)); |
| 130 } | 135 } |
| 131 if ($args['action'] == 'compose') { | 136 if ($args['action'] == 'compose') { |
| 132 $draft_uid = get_input_value('_draft_uid', RCUBE_INPUT_GET); | 137 $draft_uid = rcube_utils::get_input_value('_draft_uid', rcube_utils::INPUT_GET); |
| 133 $parts = explode('__MB__', $draft_uid); | 138 $parts = explode('__MB__', $draft_uid); |
| 134 $draft_uid = $parts[0]; | 139 $draft_uid = $parts[0]; |
| 135 if (!empty($draft_uid)) { | 140 if (!empty($draft_uid)) { |
| 136 $this->rc->output->redirect(array('_task' => 'mail', '_action' => $args['action'], '_mbox' => $mbox, '_draft_uid' => $draft_uid)); | 141 $this->rc->output->redirect(array('_task' => 'mail', '_action' => $args['action'], '_mbox' => $mbox, '_draft_uid' => $draft_uid)); |
| 137 } | 142 } |
| 140 $this->rc->output->command('advanced_search_active', '_page=' . $page . '&_sort=' . $sort); | 145 $this->rc->output->command('advanced_search_active', '_page=' . $page . '&_sort=' . $sort); |
| 141 $this->rc->output->send(); | 146 $this->rc->output->send(); |
| 142 $args['abort'] = true; | 147 $args['abort'] = true; |
| 143 } | 148 } |
| 144 if ($args['action'] == 'mark') { | 149 if ($args['action'] == 'mark') { |
| 145 $flag = get_input_value('_flag', RCUBE_INPUT_POST); | 150 $flag = rcube_utils::get_input_value('_flag', rcube_utils::INPUT_POST); |
| 146 $uid = get_input_value('_uid', RCUBE_INPUT_POST); | 151 $uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); |
| 147 | 152 |
| 148 $post_str = '_flag=' . $flag . '&_uid=' . $uid; | 153 $post_str = '_flag=' . $flag . '&_uid=' . $uid; |
| 149 if ($quiet = get_input_value('_quiet', RCUBE_INPUT_POST)) { | 154 if ($quiet = rcube_utils::get_input_value('_quiet', rcube_utils::INPUT_POST)) { |
| 150 $post_str .= '&_quiet=' . $quiet; | 155 $post_str .= '&_quiet=' . $quiet; |
| 151 } | 156 } |
| 152 if ($from = get_input_value('_from', RCUBE_INPUT_POST)) { | 157 if ($from = rcube_utils::get_input_value('_from', rcube_utils::INPUT_POST)) { |
| 153 $post_str .= '&_from=' . $from; | 158 $post_str .= '&_from=' . $from; |
| 154 } | 159 } |
| 155 if ($count = get_input_value('_count', RCUBE_INPUT_POST)) { | 160 if ($count = rcube_utils::get_input_value('_count', rcube_utils::INPUT_POST)) { |
| 156 $post_str .= '&_count=' . $count; | 161 $post_str .= '&_count=' . $count; |
| 157 } | 162 } |
| 158 if ($ruid = get_input_value('_ruid', RCUBE_INPUT_POST)) { | 163 if ($ruid = rcube_utils::get_input_value('_ruid', rcube_utils::INPUT_POST)) { |
| 159 $post_str .= '&_ruid=' . $ruid; | 164 $post_str .= '&_ruid=' . $ruid; |
| 160 } | 165 } |
| 161 $this->rc->output->command('label_mark', $post_str); | 166 $this->rc->output->command('label_mark', $post_str); |
| 162 $this->rc->output->send(); | 167 $this->rc->output->send(); |
| 163 $args['abort'] = true; | 168 $args['abort'] = true; |
| 435 | 440 |
| 436 public function generate_searchbox() | 441 public function generate_searchbox() |
| 437 { | 442 { |
| 438 $search_button = new html_inputfield(array('type' => 'submit', 'name' => 'search', 'class' => 'button mainaction', 'value' => $this->i18n_strings['search'])); | 443 $search_button = new html_inputfield(array('type' => 'submit', 'name' => 'search', 'class' => 'button mainaction', 'value' => $this->i18n_strings['search'])); |
| 439 $reset_button = new html_inputfield(array('type' => 'reset', 'name' => 'reset', 'class' => 'button reset', 'value' => $this->i18n_strings['resetsearch'])); | 444 $reset_button = new html_inputfield(array('type' => 'reset', 'name' => 'reset', 'class' => 'button reset', 'value' => $this->i18n_strings['resetsearch'])); |
| 440 $save_button = html::tag('input', array('type' => 'submit', 'name' => 'save_the_search', id=> 'save_the_search', 'class' => 'button save_search', 'value' => $this->i18n_strings['save_the_search'])); | 445 $save_button = html::tag('input', array('type' => 'submit', 'name' => 'save_the_search', 'id'=> 'save_the_search', 'class' => 'button save_search', 'value' => $this->i18n_strings['save_the_search'])); |
| 441 $delete_button = new html_inputfield(array('type' => 'submit', 'name' => 'delete', 'style' => 'display: none;', 'class' => 'button delete_search', 'value' => $this->i18n_strings['deletesearch'])); | 446 $delete_button = new html_inputfield(array('type' => 'submit', 'name' => 'delete', 'style' => 'display: none;', 'class' => 'button delete_search', 'value' => $this->i18n_strings['deletesearch'])); |
| 442 | 447 |
| 443 $layout_table = new html_table(); | 448 $layout_table = new html_table(); |
| 444 $layout_table->add(null, $search_button->show()); | 449 $layout_table->add(null, $search_button->show()); |
| 445 $folderConfig = array('name' => 'folder'); | 450 $folderConfig = array('name' => 'folder'); |
| 587 * @access public | 592 * @access public |
| 588 * @return null | 593 * @return null |
| 589 */ | 594 */ |
| 590 public function trigger_search($inPagination = false) | 595 public function trigger_search($inPagination = false) |
| 591 { | 596 { |
| 592 $search = get_input_value('search', RCUBE_INPUT_GPC); | 597 $search = rcube_utils::get_input_value('search', rcube_utils::INPUT_GPC); |
| 593 // reset list_page and old search results | 598 // reset list_page and old search results |
| 594 $this->rc->storage->set_page(1); | 599 $this->rc->storage->set_page(1); |
| 595 $this->rc->storage->set_search_set(null); | 600 $this->rc->storage->set_search_set(null); |
| 596 $page = get_input_value('_page', RCUBE_INPUT_GPC); | 601 $page = rcube_utils::get_input_value('_page', rcube_utils::INPUT_GPC); |
| 597 $page = $page ? $page : 1; | 602 $page = $page ? $page : 1; |
| 598 $pagesize = $this->rc->storage->get_pagesize(); | 603 $pagesize = $this->rc->storage->get_pagesize(); |
| 599 | 604 |
| 600 if (!empty($search)) { | 605 if (!empty($search)) { |
| 601 $mbox = get_input_value('folder', RCUBE_INPUT_GPC); | 606 $mbox = rcube_utils::get_input_value('folder', rcube_utils::INPUT_GPC); |
| 602 $imap_charset = RCMAIL_CHARSET; | 607 $imap_charset = RCUBE_CHARSET; |
| 603 $sort_column = rcmail_sort_column(); | 608 $sort_column = rcmail_sort_column(); |
| 604 $search_str = $this->get_search_query($search); | 609 $search_str = $this->get_search_query($search); |
| 605 $sub_folders = get_input_value('sub_folders', RCUBE_INPUT_GPC) == 'true'; | 610 $sub_folders = rcube_utils::get_input_value('sub_folders', rcube_utils::INPUT_GPC) == 'true'; |
| 606 $folders = array(); | 611 $folders = array(); |
| 607 $result_h = array(); | 612 $result_h = array(); |
| 608 $count = 0; | 613 $count = 0; |
| 609 $new_id = 1; | 614 $new_id = 1; |
| 610 $current_mbox = $this->rc->storage->get_folder(); | 615 $current_mbox = $this->rc->storage->get_folder(); |
| 611 $uid_list = array(); | 616 $uid_list = array(); |
| 612 //Store information in session for pagination | 617 //Store information in session for pagination |
| 613 $_SESSION['av_search'] = $search; | 618 $_SESSION['av_search'] = $search; |
| 614 $_SESSION['av_folder'] = $mbox; | 619 $_SESSION['av_folder'] = $mbox; |
| 615 $_SESSION['av_sub_folders'] = get_input_value('sub_folders', RCUBE_INPUT_GPC); | 620 $_SESSION['av_sub_folders'] = rcube_utils::get_input_value('sub_folders', rcube_utils::INPUT_GPC); |
| 616 $nosub = $sub_folders; | 621 $nosub = $sub_folders; |
| 617 $folders = $this->rc->get_storage()->list_folders_subscribed(); | 622 $folders = $this->rc->get_storage()->list_folders_subscribed(); |
| 618 if (empty($folders) || ($sub_folders === false && $mbox !== 'all')) { | 623 if (empty($folders) || ($sub_folders === false && $mbox !== 'all')) { |
| 619 $folders = array($mbox); | 624 $folders = array($mbox); |
| 620 } elseif ($mbox !== 'all') { | 625 } elseif ($mbox !== 'all') { |
| 645 rcmail_display_server_error(); | 650 rcmail_display_server_error(); |
| 646 } else { | 651 } else { |
| 647 $this->rc->output->show_message('searchnomatch', 'notice'); | 652 $this->rc->output->show_message('searchnomatch', 'notice'); |
| 648 } | 653 } |
| 649 | 654 |
| 650 $current_folder = get_input_value('current_folder', RCUBE_INPUT_GPC); | 655 $current_folder = rcube_utils::get_input_value('current_folder', rcube_utils::INPUT_GPC); |
| 651 | 656 |
| 652 $this->rc->output->set_env('search_request', 'advanced_search_active'); | 657 $this->rc->output->set_env('search_request', 'advanced_search_active'); |
| 653 $this->rc->output->set_env('messagecount', $count); | 658 $this->rc->output->set_env('messagecount', $count); |
| 654 $this->rc->output->set_env('pagecount', ceil($count / $pagesize)); | 659 $this->rc->output->set_env('pagecount', ceil($count / $pagesize)); |
| 655 $this->rc->output->set_env('exists', $this->rc->storage->count($current_folder, 'EXISTS')); | 660 $this->rc->output->set_env('exists', $this->rc->storage->count($current_folder, 'EXISTS')); |
| 742 if (in_array($col_name, array('from', 'to', 'cc', 'replyto'))) { | 747 if (in_array($col_name, array('from', 'to', 'cc', 'replyto'))) { |
| 743 $cont = rcmail_address_string($header->$col_name, 3, false, null, $header->charset); | 748 $cont = rcmail_address_string($header->$col_name, 3, false, null, $header->charset); |
| 744 } elseif ($col == 'subject') { | 749 } elseif ($col == 'subject') { |
| 745 $cont = trim(rcube_mime::decode_header($header->$col, $header->charset)); | 750 $cont = trim(rcube_mime::decode_header($header->$col, $header->charset)); |
| 746 if (!$cont) { | 751 if (!$cont) { |
| 747 $cont = rcube_label('nosubject'); | 752 $cont = $this->gettext('nosubject'); |
| 748 } | 753 } |
| 749 $cont = Q($cont); | 754 $cont = rcube::Q($cont); |
| 750 } elseif ($col == 'size') { | 755 } elseif ($col == 'size') { |
| 751 $cont = show_bytes($header->$col); | 756 $cont = $this->rc->show_bytes($header->$col); |
| 752 } elseif ($col == 'date') { | 757 } elseif ($col == 'date') { |
| 753 $cont = format_date($header->date); | 758 $cont = rcube_utils::format_datestr($header->date,$date_format); |
| 754 } else { | 759 } else { |
| 755 $cont = Q($header->$col); | 760 $cont = rcube::Q($header->$col); |
| 756 } | 761 } |
| 757 $a_msg_cols[$col] = $cont; | 762 $a_msg_cols[$col] = $cont; |
| 758 } | 763 } |
| 759 | 764 |
| 760 $a_msg_flags = array_change_key_case(array_map('intval', (array) $header->flags)); | 765 $a_msg_flags = array_change_key_case(array_map('intval', (array) $header->flags)); |
| 776 $a_msg_flags['ml'] = 1; | 781 $a_msg_flags['ml'] = 1; |
| 777 } | 782 } |
| 778 if ($header->priority) { | 783 if ($header->priority) { |
| 779 $a_msg_flags['prio'] = (int) $header->priority; | 784 $a_msg_flags['prio'] = (int) $header->priority; |
| 780 } | 785 } |
| 781 $a_msg_flags['ctype'] = Q($header->ctype); | 786 $a_msg_flags['ctype'] = rcube::Q($header->ctype); |
| 782 $a_msg_flags['mbox'] = $mbox; | 787 $a_msg_flags['mbox'] = $mbox; |
| 783 if (!empty($header->list_flags) && is_array($header->list_flags)) { | 788 if (!empty($header->list_flags) && is_array($header->list_flags)) { |
| 784 $a_msg_flags = array_merge($a_msg_flags, $header->list_flags); | 789 $a_msg_flags = array_merge($a_msg_flags, $header->list_flags); |
| 785 } | 790 } |
| 786 if (!empty($header->list_cols) && is_array($header->list_cols)) { | 791 if (!empty($header->list_cols) && is_array($header->list_cols)) { |
| 857 return; | 862 return; |
| 858 } | 863 } |
| 859 $rcmail = rcmail::get_instance(); | 864 $rcmail = rcmail::get_instance(); |
| 860 | 865 |
| 861 $displayOptions = array(); | 866 $displayOptions = array(); |
| 862 $displayOptions['_show_message_label_header'] = get_input_value('_show_message_label_header', RCUBE_INPUT_POST) == 1 ? true : false; | 867 $displayOptions['_show_message_label_header'] = rcube_utils::get_input_value('_show_message_label_header', rcube_utils::INPUT_POST) == 1 ? true : false; |
| 863 $displayOptions['_show_message_mbox_info'] = get_input_value('_show_message_mbox_info', RCUBE_INPUT_POST) == 1 ? true : false; | 868 $displayOptions['_show_message_mbox_info'] = rcube_utils::get_input_value('_show_message_mbox_info', rcube_utils::INPUT_POST) == 1 ? true : false; |
| 864 $displayOptions['target_menu'] = get_input_value('button_display_option', RCUBE_INPUT_POST); | 869 $displayOptions['target_menu'] = rcube_utils::get_input_value('button_display_option', rcube_utils::INPUT_POST); |
| 865 | 870 |
| 866 $args['prefs']['advanced_search_display_options'] = $displayOptions; | 871 $args['prefs']['advanced_search_display_options'] = $displayOptions; |
| 867 | 872 |
| 868 return($args); | 873 return($args); |
| 869 } | 874 } |
| 875 */ | 880 */ |
| 876 public function preferences_section($args) | 881 public function preferences_section($args) |
| 877 { | 882 { |
| 878 $args['list']['advancedsearch'] = array( | 883 $args['list']['advancedsearch'] = array( |
| 879 'id' => 'advancedsearch', | 884 'id' => 'advancedsearch', |
| 880 'section' => Q($this->gettext('advancedsearch')) | 885 'section' => rcube::Q($this->gettext('advancedsearch')) |
| 881 ); | 886 ); |
| 882 | 887 |
| 883 return($args); | 888 return($args); |
| 884 } | 889 } |
| 885 | 890 |
| 891 public function preferences_list($args) | 896 public function preferences_list($args) |
| 892 { | 897 { |
| 893 if ($args['section'] == 'advancedsearch') { | 898 if ($args['section'] == 'advancedsearch') { |
| 894 | 899 |
| 895 $this->rc = rcmail::get_instance(); | 900 $this->rc = rcmail::get_instance(); |
| 896 $args['blocks']['label_display_options'] = array('options' => array(), 'name' => Q($this->gettext('label_display_options'))); | 901 $args['blocks']['label_display_options'] = array('options' => array(), 'name' => rcube::Q($this->gettext('label_display_options'))); |
| 897 | 902 |
| 898 $displayOptions = $this->rc->config->get('advanced_search_display_options', array()); | 903 $displayOptions = $this->rc->config->get('advanced_search_display_options', array()); |
| 899 $target_menu = (isset($displayOptions['target_menu']) && !empty($displayOptions['target_menu'])) ? $displayOptions['target_menu'] : $this->config['target_menu']; | 904 $target_menu = (isset($displayOptions['target_menu']) && !empty($displayOptions['target_menu'])) ? $displayOptions['target_menu'] : $this->config['target_menu']; |
| 900 $options = ''; | 905 $options = ''; |
| 901 $optarg = array('value' => 'messagemenu'); | 906 $optarg = array('value' => 'messagemenu'); |
| 902 if ($target_menu == 'messagemenu') { | 907 if ($target_menu == 'messagemenu') { |
| 903 $optarg['selected'] = 'selected'; | 908 $optarg['selected'] = 'selected'; |
| 904 $target_image = 'menu_location_a.jpg'; | 909 $target_image = 'menu_location_a.jpg'; |
| 905 } | 910 } |
| 906 $options .= html::tag('option', $optarg, Q($this->gettext('display_in_messagemenu'))); | 911 $options .= html::tag('option', $optarg, rcube::Q($this->gettext('display_in_messagemenu'))); |
| 907 $optarg = array('value' => 'toolbar'); | 912 $optarg = array('value' => 'toolbar'); |
| 908 if ($target_menu == 'toolbar') { | 913 if ($target_menu == 'toolbar') { |
| 909 $optarg['selected'] = 'selected'; | 914 $optarg['selected'] = 'selected'; |
| 910 $target_image = 'menu_location_b.jpg'; | 915 $target_image = 'menu_location_b.jpg'; |
| 911 } | 916 } |
| 912 $options .= html::tag('option', $optarg, Q($this->gettext('display_in_toolbar'))); | 917 $options .= html::tag('option', $optarg,rcube::Q($this->gettext('display_in_toolbar'))); |
| 913 $select = html::tag('select', array('name' => 'button_display_option', 'id' => 'button_display_option'), $options); | 918 $select = html::tag('select', array('name' => 'button_display_option', 'id' => 'button_display_option'), $options); |
| 914 | 919 |
| 915 $label1 = html::label('_show_message_label_header', Q($this->gettext('mailbox_headers_in_results'))); | 920 $label1 = html::label('_show_message_label_header', rcube::Q($this->gettext('mailbox_headers_in_results'))); |
| 916 $label2 = html::label('_show_message_mbox_info', Q($this->gettext('mailbox_info_in_results'))); | 921 $label2 = html::label('_show_message_mbox_info', rcube::Q($this->gettext('mailbox_info_in_results'))); |
| 917 $label3 = html::label('button_display_option', Q($this->gettext('show_advanced_search'))); | 922 $label3 = html::label('button_display_option', rcube::Q($this->gettext('show_advanced_search'))); |
| 918 | 923 |
| 919 $arg1 = array('name' => '_show_message_label_header', 'id' => '_show_message_label_header', 'type' => 'checkbox', 'title' => "", 'class' => 'watermark linput', 'value' => 1); | 924 $arg1 = array('name' => '_show_message_label_header', 'id' => '_show_message_label_header', 'type' => 'checkbox', 'title' => "", 'class' => 'watermark linput', 'value' => 1); |
| 920 if (isset($displayOptions['_show_message_label_header']) && $displayOptions['_show_message_label_header'] === true) { | 925 if (isset($displayOptions['_show_message_label_header']) && $displayOptions['_show_message_label_header'] === true) { |
| 921 $arg1['checked'] = 'checked'; | 926 $arg1['checked'] = 'checked'; |
| 922 $img1class = 'enabled'; | 927 $img1class = 'enabled'; |
| 955 } | 960 } |
| 956 $count = 0; | 961 $count = 0; |
| 957 $folder_count = array(); | 962 $folder_count = array(); |
| 958 foreach ($folders_search as $mbox) { | 963 foreach ($folders_search as $mbox) { |
| 959 $this->rc->storage->set_folder($mbox); | 964 $this->rc->storage->set_folder($mbox); |
| 960 $this->rc->storage->search($mbox, $search_string, RCMAIL_CHARSET, $_SESSION['sort_col']); | 965 $this->rc->storage->search($mbox, $search_string, RCUBE_CHARSET, $_SESSION['sort_col']); |
| 961 $result = array(); | 966 $result = array(); |
| 962 $fcount = $this->rc->storage->count($mbox, 'ALL', !empty($_REQUEST['_refresh'])); | 967 $fcount = $this->rc->storage->count($mbox, 'ALL', !empty($_REQUEST['_refresh'])); |
| 963 $count += $fcount; | 968 $count += $fcount; |
| 964 $folder_count[$mbox] = $fcount; | 969 $folder_count[$mbox] = $fcount; |
| 965 } | 970 } |
| 998 $quantity = $data['to'] - $data['from']; | 1003 $quantity = $data['to'] - $data['from']; |
| 999 if ($data['from'] + $quantity > $pageSize) { | 1004 if ($data['from'] + $quantity > $pageSize) { |
| 1000 $multiPage = "true"; | 1005 $multiPage = "true"; |
| 1001 } | 1006 } |
| 1002 $this->rc->storage->set_folder($mailbox); | 1007 $this->rc->storage->set_folder($mailbox); |
| 1003 $this->rc->storage->search($mailbox, $search_string, RCMAIL_CHARSET, $_SESSION['sort_col']); | 1008 $this->rc->storage->search($mailbox, $search_string, RCUBE_CHARSET, $_SESSION['sort_col']); |
| 1004 $messages = $this->rc->storage->list_messages('', $startPage); | 1009 $messages = $this->rc->storage->list_messages('', $startPage); |
| 1005 if ($multiPage) { | 1010 if ($multiPage) { |
| 1006 $messages = array_merge($messages, $this->rc->storage->list_messages('', $startPage+1)); | 1011 $messages = array_merge($messages, $this->rc->storage->list_messages('', $startPage+1)); |
| 1007 } | 1012 } |
| 1008 //FIRST: 0 QUANTITY: 2 | 1013 //FIRST: 0 QUANTITY: 2 |
| 1024 return $uid_mboxes; | 1029 return $uid_mboxes; |
| 1025 } | 1030 } |
| 1026 | 1031 |
| 1027 public function save_search() | 1032 public function save_search() |
| 1028 { | 1033 { |
| 1029 $search_name = get_input_value('search_name', RCUBE_INPUT_GPC); | 1034 $search_name = rcube_utils::get_input_value('search_name', rcube_utils::INPUT_GPC); |
| 1030 if ($search_name) { | 1035 if ($search_name) { |
| 1031 $search = array(); | 1036 $search = array(); |
| 1032 $search['search'] = get_input_value('search', RCUBE_INPUT_GPC); | 1037 $search['search'] = rcube_utils::get_input_value('search', rcube_utils::INPUT_GPC); |
| 1033 $search['search_name'] = $search_name; | 1038 $search['search_name'] = $search_name; |
| 1034 $search['folder'] = get_input_value('folder', RCUBE_INPUT_GPC); | 1039 $search['folder'] = rcube_utils::get_input_value('folder', rcube_utils::INPUT_GPC); |
| 1035 $search['sub_folders'] = get_input_value('sub_folders', RCUBE_INPUT_GPC); | 1040 $search['sub_folders'] = rcube_utils::get_input_value('sub_folders', rcube_utils::INPUT_GPC); |
| 1036 $prefs = (array)$this->rc->user->get_prefs(); | 1041 $prefs = (array)$this->rc->user->get_prefs(); |
| 1037 if (!isset($prefs['advanced_search'])) { | 1042 if (!isset($prefs['advanced_search'])) { |
| 1038 $prefs['advanced_search'] = array(); | 1043 $prefs['advanced_search'] = array(); |
| 1039 } | 1044 } |
| 1040 $prefs['advanced_search'][$search_name] = $search; | 1045 $prefs['advanced_search'][$search_name] = $search; |
| 1043 } | 1048 } |
| 1044 } | 1049 } |
| 1045 | 1050 |
| 1046 public function delete_search() | 1051 public function delete_search() |
| 1047 { | 1052 { |
| 1048 $search_name = get_input_value('search_name', RCUBE_INPUT_GPC); | 1053 $search_name = rcube_utils::get_input_value('search_name', rcube_utils::INPUT_GPC); |
| 1049 if ($search_name) { | 1054 if ($search_name) { |
| 1050 $prefs = (array)$this->rc->user->get_prefs(); | 1055 $prefs = (array)$this->rc->user->get_prefs(); |
| 1051 unset($prefs['advanced_search'][$search_name]); | 1056 unset($prefs['advanced_search'][$search_name]); |
| 1052 $this->rc->user->save_prefs(array('advanced_search' => $prefs['advanced_search'])); | 1057 $this->rc->user->save_prefs(array('advanced_search' => $prefs['advanced_search'])); |
| 1053 $this->rc->output->show_message('"<i>' . $search_name . '</i>" ' . $this->i18n_strings['has_been_deleted'], 'notice'); | 1058 $this->rc->output->show_message('"<i>' . $search_name . '</i>" ' . $this->i18n_strings['has_been_deleted'], 'notice'); |
| 1054 } | 1059 } |
| 1055 } | 1060 } |
| 1056 | 1061 |
| 1057 public function get_saved_search() | 1062 public function get_saved_search() |
| 1058 { | 1063 { |
| 1059 $search_name = get_input_value('search_name', RCUBE_INPUT_GPC); | 1064 $search_name = rcube_utils::get_input_value('search_name', rcube_utils::INPUT_GPC); |
| 1060 $prefs = (array)$this->rc->user->get_prefs(); | 1065 $prefs = (array)$this->rc->user->get_prefs(); |
| 1061 if (!isset($prefs['advanced_search'])) { | 1066 if (!isset($prefs['advanced_search'])) { |
| 1062 $prefs['advanced_search'] = array(); | 1067 $prefs['advanced_search'] = array(); |
| 1063 } | 1068 } |
| 1064 | 1069 |
