',
'`', '\'', '"', '|', ',', '@', '_', '?', '%', '~', '.', '[', ']', '{', '}',
':', '\\', '/', '=', '\'', '!', '*');
$drop_char_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
'', '', ' ', ' ', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
, ' ', '' , ' ', ' ', ' ', ' ', ' ');
$search_keywords = str_replace($drop_char_match, $drop_char_replace, $search_keywords);
// Split words
$words = preg_split('#\s+#', $search_keywords);
$words = array_unique($words);
$search['fields']['allwords'] = array();
$search['fields']['allwords']['words'] =$words;
$search['fields']['allwords']['mode']= $_POST['mode'];
}
if ($_POST['search_author'])
{
$search['fields']['author'] = array();
$search['fields']['author']['words'] = array($_POST['search_author']);
}
if (isset($_POST['cat']))
{
$search['fields']['cat'] = array();
$search['fields']['cat']['words'] = $_POST['cat'];
if (isset($_POST['subcats-included']))
{
$search['fields']['cat']['mode'] = 'sub_inc';
}
}
if (!empty($_POST['start_year']))
{
$type_date = $_POST['date_type'];
// start event
$date = $_POST['start_year'].'.'.$_POST['start_month'].'.'.$_POST['start_day'];
$search['fields'][$type_date]['words'] = array($date);
// duration
$search_duration = 0;
if ( !empty($date) && !empty( $_POST['end_year']) )
{
$end_date = $_POST['end_year'].'.'.$_POST['end_month'].'.'.$_POST['end_day'];
$search['fields'][$type_date]['mode'] = $end_date;
}
}
// search string (for URL) creation
$search_string = '';
$tokens = array();
if (!empty($search))
{
foreach (array_keys($search['fields']) as $field)
{
$token = $field.':';
$token.= implode(',', $search['fields'][$field]['words']);
if (isset($search['fields'][$field]['mode']))
{
$token.= '~'.$search['fields'][$field]['mode'];
}
array_push($tokens, $token);
}
$search_string.= implode(';', $tokens);
if (count($tokens) > 1)
{
$search_string.= '|AND';
}
}
else
{
array_push($errors, $lang['search_one_clause_at_least']);
}
}
//----------------------------------------------------------------- redirection
if (isset($_POST['submit']) and count($errors) == 0)
{
$url = 'category.php?cat=search&search='.$search_string;
$url = add_session_id($url, true);
redirect($url);
}
//----------------------------------------------------- template initialization
// day list
$start_day = '';
// month list
$start_month = '';
// day list
$end_day = '';
// month list
$end_month = '';
//
// Start output of page
//
$title= $lang['search_title'];
include(PHPWG_ROOT_PATH.'include/page_header.php');
$template->set_filenames( array('search'=>'search.tpl') );
$template->assign_vars(array(
'L_SEARCH_TITLE' => $lang['search_title'],
'L_SEARCH_OPTIONS' => $lang['search_options'],
'L_RETURN' => $lang['home'],
'L_SUBMIT' => $lang['submit'],
'L_RESET' => $lang['reset'],
'L_SEARCH_KEYWORDS'=>$lang['search_keywords'],
'L_SEARCH_KEYWORDS_HINT'=>$lang['search_keywords_hint'],
'L_SEARCH_ANY_TERMS'=>$lang['search_mode_or'],
'L_SEARCH_ALL_TERMS'=>$lang['search_mode_and'],
'L_SEARCH_AUTHOR'=>$lang['search_author'],
'L_SEARCH_AUTHOR_HINT'=>$lang['search_explain'],
'L_SEARCH_CATEGORIES'=>$lang['search_categories'],
'L_SEARCH_CATEGORIES_HINT'=>$lang['search_categories_hint'],
'L_SEARCH_SUBFORUMS'=>$lang['search_subcats_included'],
'L_YES' => $lang['yes'],
'L_NO' => $lang['no'],
'L_SEARCH_DATE' => $lang['search_date'],
'L_SEARCH_DATE_HINT' => $lang['search_date_hint'],
'L_TODAY' => $lang['today'],
'L_SEARCH_DATE_FROM'=>$lang['search_date_from'],
'L_SEARCH_DATE_TO'=>$lang['search_date_to'],
'L_DAYS'=>$lang['days'],
'L_MONTH'=>$lang['w_month'],
'L_SEARCH_DATE_TYPE'=>$lang['search_date_type'],
'L_SEARCH_CREATION'=>$lang['search_date_creation'],
'L_SEARCH_AVAILABILITY'=>$lang['search_date_available'],
'L_RESULT_SORT'=>$lang['search_sort'],
'L_SORT_ASCENDING'=>$lang['search_ascending'],
'L_SORT_DESCENDING'=>$lang['search_descending'],
'TODAY_DAY' => date('d', time()),
'TODAY_MONTH' => date('m', time()),
'TODAY_YEAR' => date('Y', time()),
'E_CALENDAR_MONTH' => $end_month,
'E_CALENDAR_DAY' => $end_day,
'S_CALENDAR_MONTH' => $start_month,
'S_CALENDAR_DAY' => $start_day,
'S_SEARCH_ACTION' => add_session_id( 'search.php' ),
'U_HOME' => add_session_id( 'category.php' )
)
);
//------------------------------------------------------------- categories form
$query = '
SELECT name,id,date_last,nb_images,global_rank,uppercats
FROM '.CATEGORIES_TABLE;
if ($user['forbidden_categories'] != '')
{
$query.= '
WHERE id NOT IN ('.$user['forbidden_categories'].')';
}
$query.= '
;';
$selecteds = array();
display_select_cat_wrapper($query, $selecteds, 'category_option', false);
//-------------------------------------------------------------- errors display
if (sizeof($errors) != 0)
{
$template->assign_block_vars('errors',array());
foreach ($errors as $error)
{
$template->assign_block_vars('errors.error',array('ERROR'=>$error));
}
}
//------------------------------------------------------------ log informations
pwg_log( 'search', $title );
mysql_close();
$template->pparse('search');
include(PHPWG_ROOT_PATH.'include/page_tail.php');
?>