mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-19 21:55:15 +00:00
display a map for photos if allowed. Note: there is a bug in that if the map div starts with display:none one needs to reload the frame or zoom in or they end up at minimum resolution. Still trying to sort this out.
This commit is contained in:
parent
7c194c37b8
commit
bc22df9057
4 changed files with 59 additions and 1 deletions
|
@ -205,6 +205,17 @@ function photo_upload($channel, $observer, $args) {
|
|||
|
||||
// Create item container
|
||||
|
||||
$lat = $lon = null;
|
||||
|
||||
if($exif && $exif['GPS']) {
|
||||
if(get_pconfig($channel_id,'system','allow_photo_location')) {
|
||||
$lat = getGps($exif['GPS']['GPSLatitude'], $exif['GPSLatitudeRef']);
|
||||
$lon = getGps($exif['GPS']['GPSLongitude'], $exif['GPSLongitudeRef']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$item_flags = ITEM_WALL|ITEM_ORIGIN|ITEM_THREAD_TOP;
|
||||
$item_restrict = (($visible) ? ITEM_VISIBLE : ITEM_HIDDEN);
|
||||
$title = '';
|
||||
|
@ -212,6 +223,9 @@ function photo_upload($channel, $observer, $args) {
|
|||
|
||||
$arr = array();
|
||||
|
||||
if($lat && $lon)
|
||||
$arr['coord'] = $lat . ' ' . $lon;
|
||||
|
||||
$arr['aid'] = $account_id;
|
||||
$arr['uid'] = $channel_id;
|
||||
$arr['mid'] = $mid;
|
||||
|
@ -481,3 +495,30 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) {
|
|||
|
||||
return $item_id;
|
||||
}
|
||||
|
||||
|
||||
function getGps($exifCoord, $hemi) {
|
||||
|
||||
$degrees = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0;
|
||||
$minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0;
|
||||
$seconds = count($exifCoord) > 2 ? gps2Num($exifCoord[2]) : 0;
|
||||
|
||||
$flip = ($hemi == 'W' or $hemi == 'S') ? -1 : 1;
|
||||
|
||||
return floatval($flip * ($degrees + ($minutes / 60) + ($seconds / 3600)));
|
||||
|
||||
}
|
||||
|
||||
function gps2Num($coordPart) {
|
||||
|
||||
$parts = explode('/', $coordPart);
|
||||
|
||||
if (count($parts) <= 0)
|
||||
return 0;
|
||||
|
||||
if (count($parts) == 1)
|
||||
return $parts[0];
|
||||
|
||||
return floatval($parts[0]) / floatval($parts[1]);
|
||||
}
|
||||
|
||||
|
|
|
@ -843,6 +843,8 @@ function photos_content(&$a) {
|
|||
dbesc($datum)
|
||||
);
|
||||
|
||||
$map = null;
|
||||
|
||||
if($linked_items) {
|
||||
|
||||
xchan_query($linked_items);
|
||||
|
@ -882,6 +884,10 @@ function photos_content(&$a) {
|
|||
intval(local_channel())
|
||||
);
|
||||
}
|
||||
|
||||
if($link_item['coord']) {
|
||||
$map = generate_map($link_item['coord']);
|
||||
}
|
||||
}
|
||||
|
||||
// logger('mod_photo: link_item' . print_r($link_item,true));
|
||||
|
@ -1115,6 +1121,8 @@ function photos_content(&$a) {
|
|||
'$tags' => $tags,
|
||||
'responses' => $responses,
|
||||
'$edit' => $edit,
|
||||
'$map' => $map,
|
||||
'$map_text' => t('Map'),
|
||||
'$likebuttons' => $likebuttons,
|
||||
'$like' => $like_e,
|
||||
'$dislike' => $dislike_e,
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
}
|
||||
|
||||
#photo-edit,
|
||||
#photo-map,
|
||||
#photo-album-edit-wrapper,
|
||||
#photo-upload-form {
|
||||
display: none;
|
||||
|
|
|
@ -7,10 +7,15 @@
|
|||
{{if $tools}}
|
||||
<a class="btn btn-default btn-xs" title="{{$tools.profile.1}}" href="{{$tools.profile.0}}"><i class="icon-user"></i></a>
|
||||
{{/if}}
|
||||
{{if $map}}
|
||||
<div class="btn-group btn-group">
|
||||
<i class="icon-globe btn btn-default btn-xs" title="{{$map_text}}" onclick="openClose('photo-map');"></i>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="btn-group btn-group dropdown">
|
||||
{{if $edit}}
|
||||
<i class="icon-pencil btn btn-default btn-xs" title="{{$edit.edit}}" onclick="openClose('photo-edit');"></i>
|
||||
<i class="icon-pencil btn btn-default btn-xs" title="{{$edit.edit}}" onclick="openClose('photo-edit'); $('#map-frame').attr('src',function(i,val) { return val;});"></i>
|
||||
{{/if}}
|
||||
{{if $lock}}
|
||||
<i id="lockview" class="icon-lock btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" title="{{$lock}}" onclick="lockview(event,{{$id}});" ></i><ul id="panel-{{$id}}" class="lockview-panel dropdown-menu"></ul>
|
||||
|
@ -30,6 +35,9 @@
|
|||
|
||||
<div class="clear"></div>
|
||||
|
||||
</div>
|
||||
<div id="photo-map">
|
||||
{{$map}}
|
||||
</div>
|
||||
<div id="photo-edit" class="section-content-tools-wrapper">
|
||||
<form action="photos/{{$edit.nickname}}/{{$edit.resource_id}}" method="post" id="photo_edit_form">
|
||||
|
|
Loading…
Reference in a new issue