X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/282c6777ee11360b1b5bd8e60196d81f90480c79..3c7519444867cd9c6b3003c4c88729df21b8c265:/website/search.php?ds=sidebyside diff --git a/website/search.php b/website/search.php old mode 100755 new mode 100644 index bf9695ab..619dec6d --- a/website/search.php +++ b/website/search.php @@ -1,14 +1,13 @@ connect(); $oParams = new Nominatim\ParameterParser(); $oGeocode = new Nominatim\Geocode($oDB); @@ -16,20 +15,11 @@ $oGeocode = new Nominatim\Geocode($oDB); $aLangPrefOrder = $oParams->getPreferredLanguages(); $oGeocode->setLanguagePreference($aLangPrefOrder); -if (CONST_Search_ReversePlanForAll - || isset($aLangPrefOrder['name:de']) - || isset($aLangPrefOrder['name:ru']) - || isset($aLangPrefOrder['name:ja']) - || isset($aLangPrefOrder['name:pl']) -) { - $oGeocode->setReverseInPlan(true); -} - // Format for output -$sOutputFormat = $oParams->getSet('format', array('html', 'xml', 'json', 'jsonv2'), 'html'); +$sOutputFormat = $oParams->getSet('format', array('xml', 'json', 'jsonv2', 'geojson', 'geocodejson'), 'jsonv2'); +set_exception_handler_by_format($sOutputFormat); -$sForcedGeometry = ($sOutputFormat == 'html') ? "geojson" : null; -$oGeocode->loadParamArray($oParams, $sForcedGeometry); +$oGeocode->loadParamArray($oParams, null); if (CONST_Search_BatchMode && isset($_GET['batch'])) { $aBatch = json_decode($_GET['batch'], true); @@ -42,7 +32,7 @@ if (CONST_Search_BatchMode && isset($_GET['batch'])) { $aSearchResults = $oBatchGeocode->lookup(); $aBatchResults[] = $aSearchResults; } - include(CONST_BasePath.'/lib/template/search-batch-json.php'); + include(CONST_LibDir.'/template/search-batch-json.php'); exit; } @@ -50,6 +40,7 @@ $oGeocode->setQueryFromParams($oParams); if (!$oGeocode->getQueryString() && isset($_SERVER['PATH_INFO']) + && strlen($_SERVER['PATH_INFO']) > 0 && $_SERVER['PATH_INFO'][0] == '/' ) { $sQuery = substr(rawurldecode($_SERVER['PATH_INFO']), 1); @@ -65,20 +56,28 @@ $hLog = logStart($oDB, 'search', $oGeocode->getQueryString(), $aLangPrefOrder); $aSearchResults = $oGeocode->lookup(); -if ($sOutputFormat=='html') { - $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate - '2 minutes'::interval,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1")); -} -logEnd($oDB, $hLog, sizeof($aSearchResults)); +logEnd($oDB, $hLog, count($aSearchResults)); $sQuery = $oGeocode->getQueryString(); $aMoreParams = $oGeocode->getMoreUrlParams(); -if ($sOutputFormat != 'html') $aMoreParams['format'] = $sOutputFormat; -if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) { - $aMoreParams['accept-language'] = $_SERVER["HTTP_ACCEPT_LANGUAGE"]; +$aMoreParams['format'] = $sOutputFormat; +if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + $aMoreParams['accept-language'] = $_SERVER['HTTP_ACCEPT_LANGUAGE']; +} + +if (isset($_SERVER['REQUEST_SCHEME']) + && isset($_SERVER['SERVER_NAME']) + && isset($_SERVER['DOCUMENT_URI']) +) { + $sMoreURL = $_SERVER['REQUEST_SCHEME'].'://' + .$_SERVER['SERVER_NAME'].$_SERVER['DOCUMENT_URI'].'/?' + .http_build_query($aMoreParams); +} else { + $sMoreURL = '/search.php'.http_build_query($aMoreParams); } -$sMoreURL = CONST_Website_BaseURL.'search.php?'.http_build_query($aMoreParams); if (CONST_Debug) exit; -include(CONST_BasePath.'/lib/template/search-'.$sOutputFormat.'.php'); +$sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat; +include(CONST_LibDir.'/template/search-'.$sOutputTemplate.'.php');