/** Translate the input date to imap date to local date display, * so the user can know if the date is wrong or illegal * @return string locally formatted date or error text */ function asearch_get_date_display(&$what) { $what_parts = sqimap_asearch_parse_date($what); if (count($what_parts) == 4) { if (checkdate($what_parts[2], $what_parts[1], $what_parts[3])) { return date_intl(_("M j, Y"), mktime(0, 0, 0, $what_parts[2], $what_parts[1], $what_parts[3])); } //return $what_parts[1] . ' ' . getMonthName($what_parts[2]) . ' ' . $what_parts[3]; return _("(Illegal date)"); } return _("(Wrong date)"); }
/** * Build one criteria sequence * @global array imap_asearch_opcodes * @param string $opcode search opcode * @param string $what opcode argument * @param string $charset search charset * @return string one full criteria sequence */ function sqimap_asearch_build_criteria($opcode, $what, $charset) { global $imap_asearch_opcodes; $criteria = ''; switch ($imap_asearch_opcodes[$opcode]) { default: case 'anum': $what = str_replace(' ', '', $what); $what = preg_replace('/[^0-9]+[^KMG]$/', '', strtoupper($what)); if ($what != '') { switch (substr($what, -1)) { case 'G': $what = substr($what, 0, -1) << 30; break; case 'M': $what = substr($what, 0, -1) << 20; break; case 'K': $what = substr($what, 0, -1) << 10; break; } $criteria = $opcode . ' ' . $what . ' '; } break; case '': //aflag $criteria = $opcode . ' '; break; case 'afield': /* HEADER field-name: field-body */ preg_match('/^([^:]+):(.*)$/', $what, $what_parts); if (count($what_parts) == 3) { $criteria = $opcode . ' ' . sqimap_asearch_encode_string($what_parts[1], $charset) . ' ' . sqimap_asearch_encode_string($what_parts[2], $charset) . ' '; } break; case 'adate': $what_parts = sqimap_asearch_parse_date($what); if (isset($what_parts[0])) { $criteria = $opcode . ' ' . $what_parts[0] . ' '; } break; case 'akeyword': case 'astring': $criteria = $opcode . ' ' . sqimap_asearch_encode_string($what, $charset) . ' '; break; case 'asequence': $what = preg_replace('/[^0-9:()]+/', '', $what); if ($what != '') { $criteria = $opcode . ' ' . $what . ' '; } break; } return $criteria; }