/DEV/EXE/code.search.exe.php

https://github.com/chrisbst35/LI_LEMONDE · PHP · 243 lines · 123 code · 58 blank · 62 comment · 55 complexity · 62206592c49aefeb7f6269b4ee9d0887 MD5 · raw file

  1. <?php
  2. /**
  3. standardsearch.exe.php - Search runtime module
  4. @version 1.2
  5. @author Michel Mom, Daniel Page, Sylvain 01/2008
  6. @since 23/01/2008 Original version
  7. @since 29/01/2008 Changes to search structures
  8. @since 1/2/2008 Name change to module.type.php format and use of new search object
  9. */
  10. // Cette URL est demandée tt les 5sec on bloc en attendant de trouver une solution
  11. if ($_SERVER['REQUEST_URI'] == "/detail-vente-3F25C170-3B7E-00AF-E011-1D7624193E3C.htm?ext=1Simulez%20vos%20indemnit%E9s%20de%20cong%E9%20maternit%E9") {
  12. die;
  13. }
  14. /**
  15. * Include config settings, database functions and search object
  16. */
  17. include("../LIB/search.class.php");
  18. // instantiation
  19. if ($_REQUEST["gallery"] == 1)
  20. {
  21. $search = new search_object("T_".($_global["univers"] == 1 ? "SALES" : "RENT")."AD_BIS", $_global["table_prefix"]);
  22. }
  23. else
  24. {
  25. $search = new search_object($_global["table_name"], $_global["table_prefix"]);
  26. }
  27. // search by logicode
  28. if (isset($_REQUEST["logicode"]) && !empty($_REQUEST["logicode"])) {
  29. $code = $_REQUEST["logicode"];
  30. $code = trim($code);
  31. //$code = preg_replace('/\[(\d+)\]/', '\1', $code); // suppression des crochets "[]"
  32. //$code = preg_replace('/logic(\d+)/', '\1', $code); // suppression de "logic"
  33. //echo "[code = $code]"; exit;
  34. $search->getAd($_REQUEST, $code, 2);
  35. } else if (isset($_REQUEST["id"]) && !empty($_REQUEST["id"])) {
  36. $code = $_REQUEST["id"];
  37. $search->getAd($_REQUEST, $code, 1);
  38. } else {
  39. /**
  40. * Modifs ReftNat : Affichage 404 pour les annonces qui n'existent pas
  41. * création d'un systeme de log de 404 personalisé
  42. */
  43. log_404_refnat("ads");
  44. header("HTTP/1.0 404 Not Found");
  45. header("status: 404");
  46. include($_SERVER["DOCUMENT_ROOT"]."/404.php");
  47. die;
  48. }
  49. // retrieve search results
  50. $search_results = $search->getSearchResults();
  51. //echo "<hr>".$search->query."<hr>"; die;
  52. // retrieve search request
  53. $search_request = $search->getSearchRequest();
  54. // retrieve search agency state
  55. $search_agency = $search->isSearchAgency();
  56. if (count($search_results) == 0)
  57. {
  58. //echo $_global["self"];
  59. if (
  60. ($_global["self"] != "detail.php") // page détail classique vente
  61. && ($_global["self"] != "detail_refnat.php") // page détail refnat location
  62. && ($_global["self"] != "fiche_visite.php") // popup fiche visite
  63. && ($_global["self"] != "interstitiel_detail_envoi_ami.php" // popup envoi à un ami
  64. && (strpos($_global["self"], 'interstitiel_') === false))
  65. ) {
  66. /**
  67. * Modifs ReftNat : Affichage 404 pour les annonces qui n'existent pas
  68. * création d'un systeme de log de 404 personalisé
  69. */
  70. log_404_refnat("ads");
  71. header("HTTP/1.0 404 Not Found");
  72. header("status: 404");
  73. include($_SERVER["DOCUMENT_ROOT"]."/404.php");
  74. die;
  75. }
  76. } else { // pour ces pages là, on vérifie plus bas s'il existe une version de la page en annonce expirée
  77. // premiere annonce
  78. $search_results = $search_results[0];
  79. // Redirection 301 de l'URL annonce accédée par logicode vers l'URL annonce avec ID, B.Moinet, 24/02/2012
  80. if (isset($_REQUEST["logicode"]) && !empty($_REQUEST["logicode"])) {
  81. $url = to_url(to_nat("detail.php?univers=".$_global["univers"]."&id=".strtolower($search_results["id_annonce"]),"detail"));
  82. header("Location: ".$url, true, 301);
  83. exit;
  84. }
  85. // Traitement pour recherche par logicode des locations saisonnieres
  86. if(isset($code) && !empty($code) && $_global["univers"] == 2) {
  87. if($search_results['rnt_type_transaction'] == 3) {
  88. $url = URL_SITE_VACANCES.$_SERVER['REQUEST_URI'];
  89. header("Location: $url", null, 301);
  90. exit;
  91. }
  92. }
  93. // retrieve data
  94. list($ad, $ag) = get_ad_data($_global["self"], $search_results, 0, '', -1, $is_exclusive);
  95. $ad['coordGps'] = $search->getLongLatTown($ad['default_town']);
  96. //print_r($ag);
  97. //print_r($ad);
  98. }
  99. // creates a search if needed
  100. if (strpos($_SERVER["HTTP_REFERER"], "resultats_agence_annonces".($_global["site"] == "cz" ? "_cz" : "").".php") > 0) {
  101. $search_agency = true;
  102. } else {
  103. if (!empty($ad)) {
  104. if (is_external() == true) {
  105. $request = array();
  106. // loc_name
  107. switch ($ad["lct_level"])
  108. {
  109. case 0 :
  110. $request["loc_name"] = $ad["real_town"];
  111. break;
  112. case 1 :
  113. $request["loc_name"] = $ad["real_town"]." (".$ad["szip"].")";
  114. break;
  115. case 2 :
  116. $request["loc_name"] = $ad["real_town"]." (".$ad["lzip"].")";
  117. break;
  118. }
  119. $request["loc_key"] = $ad["lct_id"]."_".$ad["lct_level"];
  120. $request["site"] = $_global["site"];
  121. $request["univers"] = $_global["univers"];
  122. $request["lang"] = $_global["lang"];
  123. /*
  124. $request["property_type"][] = $ad["property_type_id"];
  125. $request["price"] = get_parameter_index("price", $ad["real_price"]);
  126. $request["area"] = get_parameter_index("area", $ad["area"]);
  127. $request["nb_rooms"] = ($ad["nb_roooms"] - 1 > 6 ? $ad["nb_rooms"] : "");
  128. */
  129. //echo "<h1>TEST WAL</h1>";
  130. //$search->setNewSearch($request);
  131. // do not read cookie afterwards
  132. $skip_cookie = true;
  133. // retrieve search request
  134. $search_request = $search->getSearchRequest();
  135. } else {
  136. //var_dump($ad);
  137. //echo "<hr>";
  138. //var_dump($ag);
  139. // I need to find a cleaner way, acccording to my standing
  140. if ($ad["lct_id"] <> 0 && $ad["lct_level"] <> 0)
  141. {
  142. $search->addPostCode($ad["lct_id"], $ad["lct_level"]);
  143. $search->search_parameters["loc_ids"][0] = $ad["lct_id"];
  144. $search->search_parameters["loc_levels"][0] = $ad["lct_level"];
  145. $search->search_parameters["loc_names"][0] = $ad["real_town"];
  146. // shame
  147. $search->setPostCodes();
  148. }
  149. }
  150. // retrieve search parameters
  151. if ($ad["lct_id"] <> 0 && $ad["lct_level"] <> 0)
  152. {
  153. }
  154. $search_parameters = $search->getSearchParameters();
  155. }
  156. }
  157. //echo $_global["self"];
  158. if (
  159. ($_global["self"] == "detail.php") // page détail classique vente
  160. || ($_global["self"] == "detail_coloc.php") // page detail coloc
  161. || ($_global["self"] == "detail_refnat.php") // page détail refnat location
  162. || ($_global["self"] == "fiche_visite.php") // popup fiche visite
  163. || ($_global["self"] == "interstitiel_detail_envoi_ami.php") // popup envoi à un ami
  164. ) {
  165. // annonce publiée (=> aff) ou autre (expirée/inexistante) (=> msg/404) ?
  166. $is_annonce_publiee = false;
  167. // annonce inexistante (=> 404) ou expirée (=> msg) ?
  168. $is_annonce_inexistante = true;
  169. // annonce non publiée (mais peut-être expirée, pas inexistante), pour detail_annce_location.php
  170. if (!empty($ad)) {
  171. $is_annonce_publiee = true;
  172. $is_annonce_inexistante = false;
  173. } else {
  174. /**
  175. * Modifs ReftNat : Affichage 404 pour les annonces qui n'existent pas
  176. * création d'un systeme de log de 404 personalisé
  177. */
  178. log_404_refnat("ads");
  179. header("HTTP/1.0 404 Not Found");
  180. header("status: 404");
  181. include($_SERVER["DOCUMENT_ROOT"]."/404.php");
  182. die;
  183. }
  184. }
  185. ?>