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