-', $not_arr);
} elseif (isset($not_arr[0]) && $not_arr[0] != '') {
$final_str_arr[] = '-'.$not_arr[0];
}
if (count($final_str_arr) > 1) {
$formatted_search = ''.implode(' AND ', $final_str_arr).'';
} else {
$formatted_search = ''.$final_str_arr[0].'';
}
return array($formatted_search, $and_arr, $or_arr, $not_arr);
}
// takes an array made by format_search() and checks to see if it
// it matches against a string
function search_boolean($needle_arr, $haystack) {
// init arrays
$and_arr = $needle_arr[1];
$or_arr = $needle_arr[2];
$not_arr = $needle_arr[3];
if (!$needle_arr[0]) return false;
if ((sizeof($and_arr) == 0) &&
(sizeof($or_arr) == 0) &&
(sizeof($not_arr) == 0)) return false;
// compare lowercase versions of the strings
$haystack = strtolower($haystack);
// check against the NOT
foreach($not_arr as $s) {
if (is_string(strstr($haystack,$s)) == true) {
return false;
}
}
// check against the AND
foreach($and_arr as $s) {
#echo "haystack: $haystack
needle: $s
";
if (is_string(strstr($haystack,$s)) == false) {
return false;
}
}
// check against the OR
foreach($or_arr as $or) {
$is_false = true;
foreach($or as $s) {
if (substr($s,0,1) == '-') {
if (is_string(strstr($haystack,substr($s,1))) == false) {
$is_false = false;
break;
}
} elseif (is_string(strstr($haystack,$s)) == true) {
$is_false = false;
break;
}
}
if ($is_false) return false;
}
// if we haven't returned false, then we return true
# echo "return true
";
return true;
}
function format_recur($arr) {
global $format_recur_lang, $monthsofyear_lang, $daysofweek_lang;
$d = $format_recur_lang['delimiter'];
$int = $arr['INTERVAL'];
$tmp = (($int == '1') ? 0 : 1);
$freq = $arr['FREQ'];
$freq = $format_recur_lang[$freq][$tmp];
if (isset($arr['COUNT'])) $for = str_replace('%int%',$arr['COUNT'],$format_recur_lang['count']);
elseif (isset($arr['UNTIL'])) $for = str_replace('%date%',$arr['UNTIL'], $format_recur_lang['until']);
else $for = '';
$print = $format_recur_lang['start'];
$print = str_replace('%int%', $int, $print);
$print = str_replace('%freq%', $freq, $print);
$print = str_replace('%for%', $for, $print);
if (isset($arr['BYMONTH'])) {
$list = '';
$last = count($arr['BYMONTH']) - 1;
foreach ($arr['BYMONTH'] as $key => $month) {
if ($key == $last) $list .= $monthsofyear_lang[($month-1)];
else $list .= $monthsofyear_lang[($month-1)].$d;
}
$print .= '
'."\n";
$print .= str_replace('%list%', $list, $format_recur_lang['bymonth']);
}
if (isset($arr['BYMONTHDAY'])) {
$list = '';
if ($arr['BYMONTHDAY'][(count($arr['BYMONTHDAY']) - 1)] == '0') unset($arr['BYMONTHDAY'][$last]);
$last = count($arr['BYMONTHDAY']) - 1;
foreach ($arr['BYMONTHDAY'] as $key => $day) {
ereg('(-{0,1})([0-9]{1,2})',$day,$regs);
list($junk,$sign,$day) = $regs;
if ($sign != '') $list .= $sign;
if ($key == $last) $list .= $day;
else $list .= $day.$d;
}
$print .= '
'."\n";
$print .= str_replace('%list%', $list, $format_recur_lang['bymonthday']);
}
if (isset($arr['BYDAY'])) {
$list = '';
$last = count($arr['BYDAY']) - 1;
foreach ($arr['BYDAY'] as $key => $day) {
ereg('([-\+]{0,1})([0-9]{0,1})([A-Z]{2})',$day,$regs);
list($junk,$sign,$day_num,$day_txt) = $regs;
$num = two2threeCharDays($day_txt,false);
if ($sign != '') $list .= $sign;
if ($day_num != '') $list .= $day_num.' ';
if ($key == $last) $list .= $daysofweek_lang[$num];
else $list .= $daysofweek_lang[$num].$d;
}
$print .= '
'."\n";
$print .= str_replace('%list%', $list, $format_recur_lang['byday']);
}
return $print;
}
$page = new Page(BASE.'templates/'.$template.'/search.tpl');
$page->draw_search($page);
$page->replace_files(array(
'header' => BASE.'templates/'.$template.'/header.tpl',
'footer' => BASE.'templates/'.$template.'/footer.tpl',
'sidebar' => BASE.'templates/'.$template.'/sidebar.tpl',
'event_js' => BASE.'functions/event.js',
'charset' => $charset,
'default_path' => '',
'template' => $template,
'cal' => $cal,
'getdate' => $getdate,
'calendar_name' => $calendar_name,
'display_date' => $display_date,
'current_view' => $current_view,
'sidebar_date' => $sidebar_date,
'rss_powered' => $rss_powered,
'rss_available' => '',
'rss_valid' => '',
'show_search' => ''
));
$page->replace_tags(array(
'formatted_search' => $formatted_search,
'l_results' => $lang['l_results'],
'l_query' => $lang['l_query'],
'l_time' => $lang['l_time'],
'l_summary' => $lang['l_summary'],
'l_location' => $lang['l_location'],
'l_description' => $lang['l_description'],
'l_recurring_event' => $lang['l_recurring_event'],
'l_exception' => $lang['l_exception'],
'l_no_results' => $lang['l_no_results'],
'search_box' => $search_box,
'charset' => $charset,
'template' => $template,
'cal' => $cal,
'getdate' => $getdate,
'cpath' => $cpath,
'calendar_name' => $calendar_name,
'display_date' => $display_date,
'rss_powered' => $rss_powered,
'default_path' => '',
'rss_available' => '',
'rss_valid' => '',
'show_search' => $show_search,
'next_month' => $next_month,
'prev_month' => $prev_month,
'show_goto' => '',
'is_logged_in' => '',
'list_jumps' => $list_jumps,
'list_icals' => $list_icals,
'list_years' => $list_years,
'list_months' => $list_months,
'list_weeks' => $list_weeks,
'legend' => $list_calcolors,
'current_view' => $current_view,
'style_select' => $style_select,
'sidebar_date' => $sidebar_date,
'l_goprint' => $lang['l_goprint'],
'l_preferences' => $lang['l_preferences'],
'l_calendar' => $lang['l_calendar'],
'l_legend' => $lang['l_legend'],
'l_tomorrows' => $lang['l_tomorrows'],
'l_jump' => $lang['l_jump'],
'l_todo' => $lang['l_todo'],
'l_day' => $lang['l_day'],
'l_week' => $lang['l_week'],
'l_month' => $lang['l_month'],
'l_year' => $lang['l_year'],
'l_subscribe' => $lang['l_subscribe'],
'l_download' => $lang['l_download'],
'l_this_months' => $lang['l_this_months'],
'l_powered_by' => $lang['l_powered_by'],
'l_this_site_is' => $lang['l_this_site_is']
));
$page->output();
#echo "";
#print_r($the_arr);
#echo "
";
?>