
08-16-2007, 07:04 AM
Searching
* @author Mark Slee
*
* @package ubersearch
*/
ini_set('memory_limit', '100M'); // to be
safe we are increasing the memory limit for search
include_once $_SERVER['PHP_ROOT'].'/html
/init.php'; // final
lib include
include_once $_SERVER['PHP_ROOT'].'/lib/s.php';
include_once $_SERVER['PHP_ROOT'].'/lib/browse.php';
include_once $_SERVER['PHP_ROOT'].'/lib/events.php';
include_once $_SERVER['PHP_ROOT'].'/lib/websearch_classifier/websearch_classifier.php';
flag_allow_guest();
$user = search_require_login();
if($_POST) {
$arr = us_flatten_checkboxes($_POST, array('ii'));
$qs = '?';
foreach($arr as $key=>$val) {
$qs .= $key.'='.urlencode($val).'&';
}
$qs = substr($qs, 0, (strlen($qs)-1));
redirect($_SERVER['PHP_SELF'].$qs);
}
// If they performed a classmates search, these values are
// needed to pre-populate dropdowns
param_get_slashed(array('hy'=>$PARAM_STRING,
'hs'=>$PARAM_INT,
'adv'=>$PARAM_EXISTS,
'events'=>$PARAM_EXISTS,
'groups'=>$PARAM_EXISTS,
'classmate'=>$PARAM_EXISTS,
'coworker'=>$PARAM_EXISTS));
$pos = strpos($get_hy, ':');
if($pos !== false) {
$hsid = intval(substr($get_hy, 0, $pos));
$hsyear = intval(substr($get_hy, $pos+1));
} else {
$hsid = intval($get_hs);
$hsyear = null;
}
tpl_set('hs_id', $hsid);
tpl_set('hs_name', get_high_school($hsid));
tpl_set('hs_year', $hsyear);
tpl_set('is_advanced_search', $get_adv);
tpl_set('user', $user);
tpl_set('count_total', 0); // pre-set count_total for the sake of ads
page length
// Events search calendar data
param_get(array('k' => $PARAM_HEX,
'n' => $PARAM_SINT));
if (($get_k == search_module::get_key(SEARCH_MOD_EVENT, SEARCH_TYPE_AS))) {
$EVENTS_CAL_DAYS_AHEAD = 60;
$events_begin = strftime("%Y%m01"); // first of the month
$events_end = strftime("%Y%m%d", strtotime(strftime("%m/01/%Y")) +
(86400 * $EVENTS_CAL_DAYS_AHEAD));
$events_params = array('dy1' => $events_begin,
'dy2' => $events_end);
param_get(array('c1' => $PARAM_INT, 'c2' => $PARAM_INT), 'evt_');
if (isset($evt_c1)) { $events_params['c1'] = $evt_c1; }
if (isset($evt_c2)) { $events_params['c2'] = $evt_c2; }
$results = events_get_calendar($user, $get_n, $events_params);
tpl_set('events_date', $results['events_date']);
}
// Holy shit, is this the cleanest fucking frontend file you've ever seen?!
ubersearch($_GET, $embedded=false, $template=true);
// Render it
render_template($_SERVER['PHP_ROOT'].'/html/s.phpt');
/**
* login function for s.php
*
* @author Philip Fung
*/
function search_require_login() {
//check if user is logged in
$user = require_login(true);
if($user 0 && !is_unregistered($user)) { return $user; }
// this is an unregistered user
param_get(array('k' => $GLOBALS['PARAM_HEX'], // search key
(used by rest of ubersearch code)
));
global $get_k;
$search_key = $get_k;
//Let user see event or group search if criteria are obeyed
if ($search_key
&& (search_module::get_key_type($search_key) ==
SEARCH_MOD_EVENT || search_module::get_key_type($search_key) ==
SEARCH_MOD_GROUP) //event or group search
) {
return $user;
} else {
go_home();
}
}
|