/DEV/EXE/main.search.exe.php
PHP | 236 lines | 107 code | 50 blank | 79 comment | 52 complexity | 3e3f923943c8a68d8238aaeb3579a574 MD5 | raw file
- <?php
- /**
- standardsearch.exe.php - Search runtime module
- @version 1.2
- @author Michel Mom, Daniel Page, 01/2008
- @since 23/01/2008 Original version
- @since 29/01/2008 Changes to search structures
- @since 1/2/2008 Name change to module.type.php format and use of new search object
- */
- /**
- * Include config settings, database functions and search object
- */
- include("../LIB/search.class.php");
- // Retrieve the name of the table to use
- $sSql = " SELECT ttu_" . $_global["table_prefix"] . "_fr FROM TP_TABLE_TO_USE_TTU";
- $r = pdoquery($sSql);
- // echo $sSql."<hr>";
- // Change the table name
- if (sizeof($r) > 0)
- $_global["table_name"] = $r[0]["ttu_" . $_global["table_prefix"] . "_fr"];
- // instantiation
- $search = new search_object($_global["table_name"], $_global["table_prefix"]);
- // offset parameter
- // if (!isset($_REQUEST['bypassoffset']))
- // {
- $sOffset = ((isset($_REQUEST["offset"]) && $_REQUEST["offset"] != "") ? $_REQUEST["offset"] : 0);
- // }
- // else
- // {
- // $sOffset = "";
- // }
- // Suite a la mise en place du new champ Budget min et max
- // on verif si les valeurs sont numérique
- if (isset($_REQUEST['price_min']) && is_numeric($_REQUEST['price_min']) == false) {
- $_REQUEST['price_min'] = ""; //$_GET['price_min'] = 0;
- }
- if (isset($_REQUEST['price_max']) && is_numeric($_REQUEST['price_max']) == false) {
- $_REQUEST['price_max'] = ""; //$_GET['price_max'] = 0;
- }
- //if ($_REQUEST["grp_agency"]==1 && isset($_SESSION["list_agence"]) && count($_SESSION["list_agence"])>0)
- if ($_COOKIE["grp_agency"] == 1 && isset($_COOKIE["list_agence"]) && count($_COOKIE["list_agence"]) > 0) {
- //$search->isGrpAgency($_SESSION["list_agence"]);
- $search->isGrpAgency($_COOKIE["list_agence"]);
- }
- if (isset($_REQUEST["perim"]) && isset($_REQUEST["perim"]) <> 0) {
- //$proximite = $search->setPerimProximit($_REQUEST["perim"]);
- //$proximite_coor = $search->getCoord($_REQUEST['loc_key1']);
- }
- /**/
- if (!isset($_REQUEST["ck_nb_bedrooms"])) {
- $_REQUEST["ck_nb_bedrooms"] = '00000000';
- }
- if (!isset($_REQUEST["ck_advanced"])) {
- $_REQUEST["ck_advanced"] = '000000000000000000000000000000000000000000000000';
- }
- if (!isset($_REQUEST["dpe"])) {
- $_REQUEST["dpe"] = '00000000';
- }
- if (!isset($_REQUEST["fresh"])) {
- $_REQUEST["fresh"] = '';
- }
- if (!isset($_REQUEST["an_visuel"])) {
- $_REQUEST["an_visuel"] = '';
- }
- if (!isset($_REQUEST["offset"]) || empty($_REQUEST["offset"])) {
- $_REQUEST["offset"] = '1';
- }
- /**/
- //var_dump($_REQUEST);
- // query the object
- if (9 == $_global['univers']) {
- $search->getAgencyAds($_REQUEST, $offset);
- } else {
- $search->getAds($_REQUEST, $sOffset, true);
- }
- // retrieve search results
- $search_results = $search->getSearchResults();
- //echo '<pre>'; var_dump($search_results); echo '</pre>';
- //echo "<hr><br>".$search->query."<br><hr>";
- // retrieve search parameters
- $search_parameters = $search->getSearchParameters();
- // retrieve search request
- $search_request = $search->getSearchRequest();
- // retrieve search agency state
- $search_agency = $search->isSearchAgency();
- // retrieve search agency state
- $search_agency = $search->isSearchAgency();
- if ($_global["univers"] != 8) {
- // retrieve all localities of code group (lgc_id) (for only one locality)
- //$loc_codeGrp = $search->getLocCodeGrp();
- // retrieve all localities of name group (lgn_id) (for only one locality)
- //$loc_nameGrp = $search->getLocNameGrp();
- // retrieve all localities from code or name group (lgc_id, lgn_id) (for only one locality)
- $loc_Grp = $search->get_locGrp();
- }
- // retrieve search agency state
- define('ADVANCED_SEARCH', $search->isAdvancedSearch());
- if ($_global["univers"] != 8) {
- // retrieve all localities of code group (lgc_id) (for only one locality)
- //$loc_codeGrp = $search->getLocCodeGrp();
- // retrieve all localities of name group (lgn_id) (for only one locality)
- //$loc_nameGrp = $search->getLocNameGrp();
- // retrieve all localities from code or name group (lgc_id, lgn_id) (for only one locality)
- $loc_Grp = $search->get_locGrp();
- }
- // retrieve search agency state
- define('ADVANCED_SEARCH', $search->isAdvancedSearch());
- // parsing query_string
- parse_str($_SERVER["QUERY_STRING"], $aUrlParameters);
- //echo "[aUrlParameters = ".print_r($aUrlParameters, true)."]";
- //echo "[QUERY_STRING = ".print_r($_SERVER["QUERY_STRING"], true)."]";
- // patch pour pages résultats classiques si le loc_key1 indiqué mais pas le loc_name1 (car CP manquant par exemple) ou qu'il est incorrect (CP seul par exemple)
- $bDoRedirect = false;
- // redirection vers les urls réécrites uniquement sur www.li.com, pas les partenaires
- $subdomain_url = substr($_SERVER["SERVER_NAME"], 0, strpos($_SERVER["SERVER_NAME"], ".logic-immo.com")); // www ou dev.www ou yahoo ou dev.yahoo...
- $end_subdomain_url = substr($subdomain_url, -3); // 3 derniers caractères du sous-domaine courant (normalement : www ou yahoo...)
- $is_subdomain_www = ($end_subdomain_url == "www"); //echo "[[ $subdomain_url // $end_subdomain_url // $is_subdomain_www]]";
- if ($is_subdomain_www && ($_global["self"] == "resultats.php") && ($_REQUEST["loc_key1"] != "") && (($_REQUEST["loc_name1"] == "") || (!string_contains($_REQUEST["loc_name1"], "-")))) {
- // on suppose que le loc_key est fiable (par rapport au nom de ville et CP de ville)
- list($loc_key1_id, $loc_key1_level) = explode('_', $_REQUEST["loc_key1"]);
- if (($loc_key1_id > 0) && ($loc_key1_level > 0)) {
- $str_cond = "(lct_id = " . $loc_key1_id . " AND lct_level = " . $loc_key1_level . ")";
- $loc_objs = get_loc_names("", "", "", $str_cond);
- //echo "[loc_objs = ".print_r($loc_objs, true)."]";
- if ((count($loc_objs) > 0) && (!empty($loc_objs[0]))) {
- $loc_name1 = prepareToUrl($loc_objs[0]["lct_name"]) . "-" . $loc_objs[0]["lct_post_code"];
- $aUrlParameters["loc_name1"] = $loc_name1;
- //echo "[aUrlParameters = ".print_r($aUrlParameters, true)."]";
- $bDoRedirect = true;
- }
- }
- }
- // $sAdsLink : default base link for ads
- unset($aUrlParameters["id"]);
- $sAdsLink = add_parameters("detail.php?" . http_build_query($aUrlParameters)) . "&id=";
- $sBaseLink = add_parameters($_global["self"] . "?" . http_build_query($aUrlParameters));
- //if ($_REQUEST["grp_agency"]==1 && isset($_SESSION["list_agence"]) && count($_SESSION["list_agence"])>0)
- if ($_REQUEST["grp_agency"] == 1 && isset($_COOKIE["list_agence"]) && count($_COOKIE["list_agence"]) > 0) {
- $sAdsLink = add_parameters("confier_detail.php?" . http_build_query($aUrlParameters)) . "&id=";
- }
- // $sAdsLink : default base link for nav
- unset($aUrlParameters["offset"]);
- unset($aUrlParameters["map"]);
- $sNavLink = add_parameters("/" . $_global["self"] . "?" . http_build_query($aUrlParameters));
- //echo "[sNavLink = ".$sNavLink."]";
- //$sMapLink = add_parameter(to_nat($sNavLink, "recherche"), "map", "1");
- $sMapLink = $sNavLink; // ???
- // patch pour pages résultats classiques si le loc_key1 indiqué mais pas le loc_name1 (suite et fin)
- if ($bDoRedirect) {
- $page_mode = "recherche";
- $page_cur = (isset($search_parameters["offset"]) && !empty($search_parameters["offset"]) ? $search_parameters["offset"] : 1);
- $sNavLinkCorrect = $sNavLink . "&offset=" . $page_cur;
- //echo "[sNavLinkCorrect = ".$sNavLinkCorrect."]";
- $url_redirect = to_url(to_nat($sNavLinkCorrect, $page_mode));
- //echo "[url_redirect = ".$url_redirect."]"; exit;
- header("Location: " . $url_redirect, true, 301);
- exit;
- }
- // get agency details
- if ($search_agency == true) {
- // instantiation
- $search = new search_object("T_AGENCY_AGC", "agc");
- // query the objects
- $search->getAgency($_REQUEST, $search_parameters["id_agence"]);
- //echo $search->query;
- // retrieve search results
- $search_results_agency = $search->getSearchResults("agency");
- // agency data
- $agency = get_ag_data($_global["self"], $search_results_agency[0]);
- // agence inexistante (=> 404) ou avec/sans annonce (=> aff/msg) ?
- $is_agence_inexistante = empty($agency["id"]);
- // agence avec annonce(s) (=> aff) ou sans annonce (=> msg) ?
- $is_agence_avec_annonces = !empty($agency["id"]) && (($agency["rnt_count"] + $agency["sal_count"]) > 0);
- // redirect if agency has not a single ad
- if ($is_agence_inexistante) {
- log_404_refnat("agc");
- header("HTTP/1.0 404 Not Found");
- header("status: 404");
- include($_SERVER["DOCUMENT_ROOT"] . "/404.php");
- die;
- }
- // agency hierarchy
- $search_hierarchy_agency = $search->getSearchHierarchyAgency();
- }
- //echo "<hr><br>".$search->query."<br><hr>";
- ?>