function create_searchpage($template_tag = false, $no_results = false) { global $config, $lang, $conn; require_once $config['basepath'] . '/include/misc.inc.php'; $misc = new misc(); // Determine if we are searching for a particular property class $class_sql = ''; if (!isset($_GET['pclass'])) { $_GET['pclass'] = ''; } if (is_array($_GET['pclass'])) { foreach ($_GET['pclass'] as $c => $class) { // Ignore non numberic values if (is_numeric($class)) { if (!empty($class_sql)) { $class_sql .= ' OR '; } $class_sql .= $config['table_prefix_no_lang'] . "classformelements.class_id = {$class}"; } else { unset($_GET['pclass'][$c]); } } } // Determine users login status. $display_status = false; $display_priv = 'listingsformelements_display_priv = 0'; $display_status = login::loginCheck('Member', true); if ($display_status == true) { $display_priv = '(listingsformelements_display_priv = 0 OR listingsformelements_display_priv = 1)'; } $display_status = login::loginCheck('Agent', true); if ($display_status == true) { $display_priv = '(listingsformelements_display_priv = 0 OR listingsformelements_display_priv = 1 OR listingsformelements_display_priv = 2)'; } // Get all searchable fields and display them if (empty($class_sql)) { $sql = "SELECT listingsformelements_id, listingsformelements_search_label, listingsformelements_search_type, listingsformelements_field_name FROM " . $config['table_prefix'] . "listingsformelements WHERE listingsformelements_searchable = 1 AND {$display_priv} ORDER BY listingsformelements_search_rank"; } else { $sql = "SELECT DISTINCT(" . $config['table_prefix'] . "listingsformelements.listingsformelements_id), listingsformelements_search_label, listingsformelements_search_type, listingsformelements_field_name, listingsformelements_search_rank FROM " . $config['table_prefix'] . "listingsformelements, " . $config['table_prefix_no_lang'] . "classformelements WHERE " . $config['table_prefix'] . "listingsformelements.listingsformelements_id = " . $config['table_prefix_no_lang'] . "classformelements.listingsformelements_id AND ({$class_sql}) AND listingsformelements_searchable = 1 AND {$display_priv} ORDER BY listingsformelements_search_rank"; } $rs = $conn->Execute($sql); if (!$rs) { $misc->log_error($sql); } $field_data = ''; while (!$rs->EOF) { // Check for Translations if needed if (!isset($_SESSION["users_lang"])) { $search_label = $misc->make_db_unsafe($rs->fields['listingsformelements_search_label']); } else { $listingsformelements_id = $rs->fields['listingsformelements_id']; $lang_sql = "SELECT listingsformelements_search_label FROM " . $config['lang_table_prefix'] . "listingsformelements WHERE listingsformelements_id = {$listingsformelements_id}"; $lang_recordSet = $conn->Execute($lang_sql); if (!$lang_recordSet) { $misc->log_error($lang_sql); } $search_label = $misc->make_db_unsafe($lang_recordSet->fields['listingsformelements_search_label']); } $search_type = $misc->make_db_unsafe($rs->fields['listingsformelements_search_type']); $field_name = $misc->make_db_unsafe($rs->fields['listingsformelements_field_name']); $field_data .= search_page::searchbox_render($search_label, $field_name, $_GET['pclass'], $search_type); $rs->MoveNext(); } require_once $config['basepath'] . '/include/class/template/core.inc.php'; $page = new page_user(); if (is_array($_GET['pclass'])) { $class = $_GET['pclass'][0]; if (file_exists($config['template_path'] . '/search_page_class_' . $class . '.html')) { $page->load_page($config['template_path'] . '/search_page_class_' . $class . '.html'); } else { $page->load_page($config['template_path'] . '/search_page_default.html'); } } else { $page->load_page($config['template_path'] . '/search_page_default.html'); } if ($template_tag == true) { $page->page = $page->get_template_section('templated_search_form'); } else { $page->page = str_replace('{templated_search_form}', '', $page->page); $page->page = str_replace('{/templated_search_form}', '', $page->page); } $class_inputs = ''; if (is_array($_GET['pclass'])) { foreach ($_GET['pclass'] as $class) { $class_inputs .= '<input type="hidden" name="pclass[]" value="' . $class . '" />'; } } if ($class_inputs == '') { $class_inputs .= '<input type="hidden" name="pclass[]" value="" />'; } $page->page = str_replace('{search_type}', $class_inputs, $page->page); $page->replace_tags(array('featured_listings_horizontal', 'featured_listings_vertical')); $page->page = $page->parse_template_section($page->page, 'browse_all_listings', search_page::browse_all_listings_link()); $page->page = $page->parse_template_section($page->page, 'browse_all_listings_pclass', search_page::browse_all_listings_pclass_link()); $page->page = $page->parse_template_section($page->page, 'search_fields', $field_data); $page->page = $page->parse_template_section($page->page, 'agent_searchbox', search_page::searchbox_agentdropdown()); $page->page = $page->parse_template_section($page->page, 'lat_long_dist_search', search_page::searchbox_latlongdist()); $page->page = $page->parse_template_section($page->page, 'postalcode_dist_search', search_page::searchbox_postaldist()); $page->page = $page->parse_template_section($page->page, 'city_dist_search', search_page::searchbox_citydist()); $ImagesOnlySet = ''; if (isset($_GET['imagesOnly']) && $_GET['imagesOnly'] == 'yes') { $ImagesOnlySet = 'checked="checked"'; } $page->page = $page->parse_template_section($page->page, 'show_only_with_images', '<input type="checkbox" name="imagesOnly" ' . $ImagesOnlySet . ' value="yes" />'); $VtourOnlySet = ''; if (isset($_GET['vtoursOnly']) && $_GET['vtoursOnly'] == 'yes') { $VtourOnlySet = 'checked="checked"'; } $page->page = $page->parse_template_section($page->page, 'show_only_with_vtours', '<input type="checkbox" name="vtoursOnly" ' . $VtourOnlySet . ' value="yes" />'); if (isset($_GET['searchtext']) && $_GET['searchtext'] != '') { $page->page = $page->parse_template_section($page->page, 'full_text_search', '<input type="text" name="searchtext" value="' . $_GET['searchtext'] . '" />'); } else { $page->page = $page->parse_template_section($page->page, 'full_text_search', '<input type="text" name="searchtext" />'); } if ($no_results == false) { $page->replace_template_section('no_search_results_block', ''); } else { $page->page = $page->cleanup_template_block('no_search_results', $page->page); // Generate a Saved search link $guidestring_no_action = ''; foreach ($_GET as $k => $v) { if ($v != '' && $k != 'cur_page' && $k != 'PHPSESSID' && $k != 'action' && $k != 'printer_friendly' && $k != 'template') { if (is_array($v)) { foreach ($v as $vitem) { $guidestring_no_action .= '&' . urlencode("{$k}") . '[]=' . urlencode("{$vitem}"); } } else { $guidestring_no_action .= '&' . urlencode("{$k}") . '=' . urlencode("{$v}"); } } } $save_search_link = 'index.php?action=save_search' . $guidestring_no_action; $page->page = $page->parse_template_section($page->page, 'save_search_link', $save_search_link); } return $page->page; }