+ return FALSE;
+}
+
+/** Print the advanced search form
+ * @param stream $imapConnection
+ * @param array $boxes
+ * @param array $mailbox_array
+ * @param array $biop_array
+ * @param array $unop_array
+ * @param array $where_array
+ * @param array $what_array
+ * @param array $exclude_array
+ * @param array $sub_array
+ * @since 1.5.0
+ * @private
+ */
+function asearch_print_form($imapConnection, &$boxes, $mailbox_array, $biop_array, $unop_array, $where_array, $what_array, $exclude_array, $sub_array)
+{
+ global $oTemplate, $allow_advanced_search, $search_advanced,
+ $imap_asearch_unops, $imap_asearch_biops_in, $imap_asearch_options;
+
+ # Build the criteria array
+ $c = array();
+ for ($row_num = 0; $row_num < count($where_array); $row_num++) {
+ $mailbox = asearch_nz($mailbox_array[$row_num]);
+ $a = array();
+ $a['MailboxSel'] = asearch_nz($mailbox_array[$row_num]);
+ $a['LogicSel'] = strip_tags(asearch_nz($biop_array[$row_num]));
+ $a['UnarySel'] = strip_tags(asearch_nz($unop_array[$row_num]));
+ $a['WhereSel'] = strip_tags(asearch_nz($where_array[$row_num]));
+ $a['What'] = asearch_nz($what_array[$row_num]);
+ $a['Exclude'] = strip_tags(asearch_nz($exclude_array[$row_num])) == 'on';
+ $a['IncludeSubfolders'] = strip_tags(asearch_nz($sub_array[$row_num])) == 'on';
+
+ $c[$row_num] = $a;
+ }
+
+ # Build the mailbox array
+ $a = array();
+ if (($mailbox != 'All Folders') && (!asearch_mailbox_exists($mailbox, $boxes))) {
+ $a[$mailbox] = '[' . _("Missing") . '] ' . htmlspecialchars(asearch_get_mailbox_display($mailbox));
+ }
+ $a['All Folders'] = '[' . asearch_get_mailbox_display('All Folders') . ']';
+ $a = array_merge($a, sqimap_mailbox_option_array($imapConnection, 0, $boxes, NULL));
+
+ if ($allow_advanced_search > 1) {
+ $link = '../src/search.php?advanced='.($search_advanced ? 0 : 1);
+ $txt = $search_advanced ? _("Standard Search") : _("Advanced search");
+ } else {
+ $link = NULL;
+ $txt = NULL;
+ }
+
+ $oTemplate->assign('allow_advanced_search', $allow_advanced_search > 1);
+ $oTemplate->assign('adv_toggle_text', $txt);
+ $oTemplate->assign('adv_toggle_link', $link);
+
+ $oTemplate->assign('mailbox_options', $a);
+ $oTemplate->assign('logical_options', $imap_asearch_biops_in);
+ $oTemplate->assign('unary_options', $imap_asearch_unops);
+ $oTemplate->assign('where_options', $imap_asearch_options);
+
+ $oTemplate->assign('criteria', $c);
+
+ echo '<form action="../src/search.php" name="form_asearch">' . "\n";
+ $oTemplate->display('search_advanced.tpl');
+ echo "</form>\n";
+}
+
+/** Print the basic search form
+ * @param stream $imapConnection
+ * @param array $boxes
+ * @param array $mailbox_array
+ * @param array $biop_array
+ * @param array $unop_array
+ * @param array $where_array
+ * @param array $what_array
+ * @param array $exclude_array
+ * @param array $sub_array
+ * @since 1.5.1
+ * @private
+ */
+function asearch_print_form_basic($imapConnection, &$boxes, $mailbox_array, $biop_array, $unop_array, $where_array, $what_array, $exclude_array, $sub_array)
+{
+ global $allow_advanced_search, $search_advanced, $oTemplate, $imap_asearch_unops, $imap_asearch_options;
+
+ $row_num = 0;
+ $mailbox = asearch_nz($mailbox_array[$row_num]);
+ $biop = strip_tags(asearch_nz($biop_array[$row_num]));
+ $unop = strip_tags(asearch_nz($unop_array[$row_num]));
+ $where = strip_tags(asearch_nz($where_array[$row_num]));
+ $what = asearch_nz($what_array[$row_num]);
+ $exclude = strip_tags(asearch_nz($exclude_array[$row_num]));
+ $sub = strip_tags(asearch_nz($sub_array[$row_num]));
+
+ # Build the mailbox array
+ $a = array();
+ if (($mailbox != 'All Folders') && (!asearch_mailbox_exists($mailbox, $boxes))) {
+ $a[$mailbox] = '[' . _("Missing") . '] ' . htmlspecialchars(asearch_get_mailbox_display($mailbox));
+ }
+ $a['All Folders'] = '[' . asearch_get_mailbox_display('All Folders') . ']';
+ $a = array_merge($a, sqimap_mailbox_option_array($imapConnection, 0, $boxes, NULL));
+
+ if ($allow_advanced_search > 1) {
+ $link = '../src/search.php?advanced='.($search_advanced ? 0 : 1);
+ $txt = $search_advanced ? _("Standard Search") : _("Advanced search");
+ } else {
+ $link = NULL;
+ $txt = NULL;
+ }
+
+ $oTemplate->assign('allow_advanced_search', $allow_advanced_search > 1);
+ $oTemplate->assign('adv_toggle_text', $txt);
+ $oTemplate->assign('adv_toggle_link', $link);
+
+ $oTemplate->assign('mailbox_options', $a);
+ $oTemplate->assign('unary_options', $imap_asearch_unops);
+ $oTemplate->assign('where_options', $imap_asearch_options);
+
+ $oTemplate->assign('mailbox_sel', strtolower(htmlspecialchars($mailbox)));
+ $oTemplate->assign('unary_sel', $unop);
+ $oTemplate->assign('where_sel', $where);
+ $oTemplate->assign('what_val', $what);
+
+ echo '<form action="../src/search.php" name="form_asearch">' . "\n";
+ $oTemplate->display('search.tpl');
+ echo "</form>\n";
+}
+
+
+/**
+ * @param array $boxes mailboxes array (reference)
+ * @return array selectable unformatted mailboxes names
+ * @since 1.5.0
+ * @private
+ */
+function sqimap_asearch_get_selectable_unformatted_mailboxes(&$boxes)
+{
+ $mboxes_array = array();
+ $boxcount = count($boxes);
+ for ($boxnum = 0; $boxnum < $boxcount; $boxnum++) {
+ if (!in_array('noselect', $boxes[$boxnum]['flags']))
+ $mboxes_array[] = $boxes[$boxnum]['unformatted'];
+ }
+ return $mboxes_array;