diff --git a/lib/output.php b/lib/output.php index fd6226bc..9d4b7502 100644 --- a/lib/output.php +++ b/lib/output.php @@ -39,3 +39,14 @@ function detailsLink($aFeature, $sTitle = false) return ''.($sTitle?$sTitle:$aFeature['place_id']).''; } + +function detailsPermaLink($aFeature, $sRefText = false) +{ + $sOSMType = formatOSMType($aFeature['osm_type'], false); + + if ($sOSMType) { + $sLabel = $sRefText ? $sRefText : $sOSMType.' '.$aFeature['osm_id']; + return ''.$sLabel.''; + } + return ''; +} diff --git a/lib/template/details-html.php b/lib/template/details-html.php index ef7d9248..00d6ba63 100644 --- a/lib/template/details-html.php +++ b/lib/template/details-html.php @@ -97,7 +97,10 @@
-

+

+ + +

diff --git a/website/css/details.css b/website/css/details.css index f1234295..171de42a 100644 --- a/website/css/details.css +++ b/website/css/details.css @@ -2,6 +2,10 @@ h1 { margin: 10px 0; padding-left: 8px; } +h1 small a { + font-size: 0.5em; + white-space: nowrap; +} h2 { font-size: 2em; padding-left: 8px; diff --git a/website/details.php b/website/details.php index e2a8a031..6989d488 100755 --- a/website/details.php +++ b/website/details.php @@ -16,15 +16,21 @@ $sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefO $sPlaceId = $oParams->getString('place_id'); $sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R')); $iOsmId = $oParams->getInt('osmid', -1); +$sClass = $oParams->getString('class'); $oDB =& getDB(); if ($sOsmType && $iOsmId > 0) { $sSQL = sprintf( - "SELECT place_id FROM placex WHERE osm_type='%s' AND osm_id=%d ORDER BY type='postcode' ASC", + "SELECT place_id FROM placex WHERE osm_type='%s' AND osm_id=%d", $sOsmType, $iOsmId ); + // osm_type and osm_id are not unique enough + if ($sClass) { + $sSQL .= " AND class='".$sClass."'"; + } + $sSQL .= ' ORDER BY class ASC'; $sPlaceId = chksql($oDB->getOne($sSQL)); // Be nice about our error messages for broken geometry