mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-28 05:48:36 +03:00
Merge pull request #1003 from mtmail/details-permalink
details page: add a perma-link
This commit is contained in:
commit
984e91e519
@ -39,3 +39,14 @@ function detailsLink($aFeature, $sTitle = false)
|
|||||||
|
|
||||||
return '<a href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
|
return '<a href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function detailsPermaLink($aFeature, $sRefText = false)
|
||||||
|
{
|
||||||
|
$sOSMType = formatOSMType($aFeature['osm_type'], false);
|
||||||
|
|
||||||
|
if ($sOSMType) {
|
||||||
|
$sLabel = $sRefText ? $sRefText : $sOSMType.' '.$aFeature['osm_id'];
|
||||||
|
return '<a href="details.php?osmtype='.$aFeature['osm_type'].'&osmid='.$aFeature['osm_id'].'&class='.$aFeature['class'].'">'.$sLabel.'</a>';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
@ -97,7 +97,10 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<h1><?php echo $aPointDetails['localname'] ?></h1>
|
<h1>
|
||||||
|
<?php echo $aPointDetails['localname'] ?>
|
||||||
|
<small><?php echo detailsPermaLink($aPointDetails, 'link to this page') ?></small>
|
||||||
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2 text-right">
|
<div class="col-sm-2 text-right">
|
||||||
<?php map_icon($aPointDetails['icon']) ?>
|
<?php map_icon($aPointDetails['icon']) ?>
|
||||||
|
@ -2,6 +2,10 @@ h1 {
|
|||||||
margin: 10px 0;
|
margin: 10px 0;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
}
|
}
|
||||||
|
h1 small a {
|
||||||
|
font-size: 0.5em;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
h2 {
|
h2 {
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
|
@ -16,15 +16,21 @@ $sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefO
|
|||||||
$sPlaceId = $oParams->getString('place_id');
|
$sPlaceId = $oParams->getString('place_id');
|
||||||
$sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R'));
|
$sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R'));
|
||||||
$iOsmId = $oParams->getInt('osmid', -1);
|
$iOsmId = $oParams->getInt('osmid', -1);
|
||||||
|
$sClass = $oParams->getString('class');
|
||||||
|
|
||||||
$oDB =& getDB();
|
$oDB =& getDB();
|
||||||
|
|
||||||
if ($sOsmType && $iOsmId > 0) {
|
if ($sOsmType && $iOsmId > 0) {
|
||||||
$sSQL = sprintf(
|
$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,
|
$sOsmType,
|
||||||
$iOsmId
|
$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));
|
$sPlaceId = chksql($oDB->getOne($sSQL));
|
||||||
|
|
||||||
// Be nice about our error messages for broken geometry
|
// Be nice about our error messages for broken geometry
|
||||||
|
Loading…
Reference in New Issue
Block a user