<?php
-@define('CONST_ConnectionBucket_PageType', 'Search');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/Geocode.php');
require_once(CONST_BasePath.'/lib/output.php');
ini_set('memory_limit', '200M');
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
$oParams = new Nominatim\ParameterParser();
$oGeocode = new Nominatim\Geocode($oDB);
}
// 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);
if (!$oGeocode->getQueryString()
&& isset($_SERVER['PATH_INFO'])
+ && strlen($_SERVER['PATH_INFO']) > 0
&& $_SERVER['PATH_INFO'][0] == '/'
) {
$sQuery = substr(rawurldecode($_SERVER['PATH_INFO']), 1);
$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_BasePath.'/lib/template/search-'.$sOutputTemplate.'.php');