code cleaning
This commit is contained in:
127
inc/spot.php
127
inc/spot.php
@@ -192,6 +192,57 @@ class Spot extends Main
|
||||
return $asMessages;
|
||||
}
|
||||
|
||||
private function getPictures()
|
||||
{
|
||||
$asPicPaths = glob('files/*.{jpg,JPG,jpeg,JPEG,png,PNG}', GLOB_BRACE);
|
||||
|
||||
$asPics = array();
|
||||
foreach($asPicPaths as $sPicPath)
|
||||
{
|
||||
//Finding picture timestamp
|
||||
$asPicInfo = self::getPicInfo($sPicPath);
|
||||
$iPicTimeStamp = $asPicInfo['timestamp'];
|
||||
|
||||
//Preparing pictures sorting key and related info
|
||||
if( Settings::MODE != self::MODE_HISTO ||
|
||||
($iPicTimeStamp >= strtotime(Settings::HISTO_SPAN['from']) && $iPicTimeStamp <= strtotime(Settings::HISTO_SPAN['to']))) {
|
||||
|
||||
$asPics[] = array(
|
||||
'path' => $sPicPath,
|
||||
'rotate' => $asPicInfo['rotate'],
|
||||
'timestamp' => $iPicTimeStamp,
|
||||
'formatted_time'=> date(self::FORMAT_TIME, $iPicTimeStamp),
|
||||
'relative_time' => Toolbox::getDateTimeDesc($iPicTimeStamp)
|
||||
);
|
||||
}
|
||||
}
|
||||
return $asPics;
|
||||
}
|
||||
|
||||
private function getPosts()
|
||||
{
|
||||
$asInfo = array('from'=>self::POST_TABLE);
|
||||
if(Settings::MODE==self::MODE_HISTO) {
|
||||
$asInfo['constraint'] = array('led'=>Settings::HISTO_SPAN);
|
||||
$asInfo['constOpe'] = array('led'=>"BETWEEN");
|
||||
}
|
||||
|
||||
$asPosts = $this->oDb->selectRows($asInfo);
|
||||
foreach($asPosts as &$asPost) {
|
||||
$iUnixTimeStamp = strtotime($asPost['led']);
|
||||
$asPost['relative_time'] = Toolbox::getDateTimeDesc($iUnixTimeStamp);
|
||||
$asPost['formatted_time'] = date(self::FORMAT_TIME, $iUnixTimeStamp);
|
||||
$asPost['formatted_name'] = Toolbox::mb_ucwords($asPost['name']);
|
||||
}
|
||||
|
||||
return $asPosts;
|
||||
}
|
||||
|
||||
private static function getJsonId($iTimeStamp, $sPriority='0', $iDbId=0)
|
||||
{
|
||||
return ($iTimeStamp * -1).'.'.$sPriority.$iDbId;
|
||||
}
|
||||
|
||||
public function getNewsFeed($iChunk=0)
|
||||
{
|
||||
$asFeed = array();
|
||||
@@ -200,62 +251,36 @@ class Spot extends Main
|
||||
$asMessages = $this->getSpotMessages();
|
||||
foreach($asMessages as $asMessage)
|
||||
{
|
||||
$iId = ($asMessage['unix_timestamp']*-1).'.0'.$asMessage[Db::getId(self::MSG_TABLE)];
|
||||
$asFeed[$iId] = $asMessage;// array('type'=>'message', 'time'=>$asMessage['relative_time'], 'text'=>$asMessage['relative_time']);
|
||||
$iMsgId = $asMessage[Db::getId(self::MSG_TABLE)];
|
||||
$iId = self::getJsonId($asMessage['unix_timestamp'], '0', $iMsgId);
|
||||
$asFeed[$iId] = $asMessage;
|
||||
$asFeed[$iId]['type'] = 'message';
|
||||
$asFeed[$iId]['id'] = $asMessage[Db::getId(self::MSG_TABLE)];
|
||||
$asFeed[$iId]['displayed_id'] = $iMsgId;
|
||||
}
|
||||
|
||||
//Pictures
|
||||
$asPicPaths = glob('files/*.{jpg,JPG,jpeg,JPEG,png,PNG}', GLOB_BRACE);
|
||||
foreach($asPicPaths as $iKey=>$sPicPath)
|
||||
{
|
||||
//Finding picture timestamp
|
||||
$asPicInfo = self::getPicInfo($sPicPath);
|
||||
$iPicTimeStamp = $asPicInfo['timestamp'];
|
||||
|
||||
//Preparing pictures sorting key and related info
|
||||
if( Settings::MODE!=self::MODE_HISTO ||
|
||||
($iPicTimeStamp>=strtotime(Settings::HISTO_SPAN['from']) && $iPicTimeStamp<=strtotime(Settings::HISTO_SPAN['to']))) {
|
||||
|
||||
$asPics[($iPicTimeStamp*-1).'.1'.$iKey] = array(
|
||||
'type' => 'picture',
|
||||
'path' => $sPicPath,
|
||||
'rotate' => $asPicInfo['rotate'],
|
||||
'formatted_time'=> date(self::FORMAT_TIME, $iPicTimeStamp),
|
||||
'relative_time' => Toolbox::getDateTimeDesc($iPicTimeStamp)
|
||||
);
|
||||
}
|
||||
}
|
||||
ksort($asPics);
|
||||
$iCount = count($asPics);
|
||||
$asPics = $this->getPictures();
|
||||
foreach($asPics as $iKey=>$asPic)
|
||||
{
|
||||
$asFeed[$iKey] = $asPic;
|
||||
$asFeed[$iKey]['id'] = $iCount--;
|
||||
$iId = self::getJsonId($asPic['timestamp'], '1', $iKey);
|
||||
$asFeed[$iId] = $asPic;
|
||||
$asFeed[$iId]['type'] = 'picture';
|
||||
}
|
||||
|
||||
//Post
|
||||
$asInfo = array('from'=>self::POST_TABLE);
|
||||
if(Settings::MODE==self::MODE_HISTO) {
|
||||
$asInfo['constraint'] = array('led'=>Settings::HISTO_SPAN);
|
||||
$asInfo['constOpe'] = array('led'=>"BETWEEN");
|
||||
}
|
||||
$asPosts = $this->oDb->selectRows($asInfo);
|
||||
$asPosts = $this->getPosts();
|
||||
foreach($asPosts as $asPost)
|
||||
{
|
||||
$iUnixTimeStamp = strtotime($asPost['led']);
|
||||
$iId = ($iUnixTimeStamp*-1).'.2'.$asPost[Db::getId(self::POST_TABLE)];
|
||||
$asFeed[$iId] = array('name'=>Toolbox::mb_ucwords($asPost['name']), 'post'=>$asPost['content'], 'type'=>'post');;
|
||||
$asFeed[$iId]['relative_time'] = Toolbox::getDateTimeDesc($iUnixTimeStamp);
|
||||
$asFeed[$iId]['formatted_time'] = date(self::FORMAT_TIME, $iUnixTimeStamp);
|
||||
//$asFeed[$iId]['id'] = $asPost[Db::getId(self::POST_TABLE)];
|
||||
$iId = self::getJsonId(strtotime($asPost['led']), '2', $asPost[Db::getId(self::POST_TABLE)]);
|
||||
$asFeed[$iId] = $asPost;
|
||||
$asFeed[$iId]['type'] = 'post';
|
||||
}
|
||||
|
||||
//Sort by key
|
||||
ksort($asFeed);
|
||||
|
||||
//split chunks
|
||||
$asFeed = array_slice($asFeed, $iChunk*self::FEED_CHUNK_SIZE, self::FEED_CHUNK_SIZE);
|
||||
//Split chunks
|
||||
//$asFeed = array_slice($asFeed, $iChunk*self::FEED_CHUNK_SIZE, self::FEED_CHUNK_SIZE);
|
||||
|
||||
return self::getJsonResult(true, '', $asFeed);
|
||||
}
|
||||
@@ -277,13 +302,16 @@ class Spot extends Main
|
||||
|
||||
public static function getPicInfo($sPicPath)
|
||||
{
|
||||
$iPicTimeStamp = 0;
|
||||
$iPicTimeStamp = $iPicTakenTimeStamp = $iPicFileTimeStamp = 0;
|
||||
$asExif = @exif_read_data($sPicPath, 0, true);
|
||||
|
||||
//Timestamp
|
||||
if(!empty($asExif) && array_key_exists('DateTimeOriginal', $asExif['EXIF'])) $iPicTimeStamp = strtotime($asExif['EXIF']['DateTimeOriginal']);
|
||||
else $iPicTimeStamp = $asExif['FILE']['FileDateTime'];
|
||||
|
||||
//Timestamps
|
||||
if(!empty($asExif) && array_key_exists('DateTimeOriginal', $asExif['EXIF'])) $iPicTakenTimeStamp = strtotime($asExif['EXIF']['DateTimeOriginal']);
|
||||
if(!empty($asExif) && array_key_exists('FileDateTime', $asExif['FILE'])) $iPicFileTimeStamp = $asExif['FILE']['FileDateTime'];
|
||||
|
||||
//Merge timestamps
|
||||
$iPicTimeStamp = ($iPicTakenTimeStamp > 0)?$iPicTakenTimeStamp:$iPicFileTimeStamp;
|
||||
|
||||
//Time Zone
|
||||
//if($iPicTimeStamp >= self::HONEYMOON_DATE_BEG && $iPicTimeStamp <= self::HONEYMOON_DATE_END) $iPicTimeStamp -= 60*60*(12+1); //timezone + daylight saving
|
||||
|
||||
@@ -300,7 +328,12 @@ class Spot extends Main
|
||||
}
|
||||
else $sRotate = '0';
|
||||
|
||||
return array('timestamp'=>$iPicTimeStamp, 'rotate'=>$sRotate);
|
||||
return array(
|
||||
'timestamp' => $iPicTimeStamp,
|
||||
'taken_ts' => $iPicTimeStamp,
|
||||
'file_ts' => $iPicTimeStamp,
|
||||
'rotate' => $sRotate
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -118,6 +118,10 @@ oSpot.pageInit = function(asHash)
|
||||
oMarker.addListener('mouseout', function(){
|
||||
oInfoWindow.close(oMap, oMarker);
|
||||
});
|
||||
oMarker.addListener('click', function(){
|
||||
self.tmp('map').panTo(oMarker.getPosition());
|
||||
self.tmp('map').setZoom(15);
|
||||
});
|
||||
});
|
||||
|
||||
//Recenter map once loaded to be at the center of 70% (iMapRatio) of the page
|
||||
@@ -239,10 +243,10 @@ function getPost(asPost) {
|
||||
{
|
||||
case 'message':
|
||||
$Body = $('<div>')
|
||||
.append($('<p>').addIcon('fa-compass', true).append(asPost.latitude+' | '+asPost.longitude))
|
||||
.append($('<p>').addIcon('fa-compass', true).append('Latitude '+asPost.latitude+', Longitude '+asPost.longitude))
|
||||
.append($('<p>').addIcon('fa-clock-o', true).append(sAbsTime))
|
||||
.append(
|
||||
$('<img>', {'class':'staticmap', src:'https://maps.googleapis.com/maps/api/staticmap?center='+asPost.latitude+','+asPost.longitude+'&zoom=13&size=400x300&maptype=satellite&markers=color:green|label:|'+asPost.latitude+','+asPost.longitude+'&key='+self.vars('google_api')})
|
||||
$('<img>', {'class':'staticmap', title: 'Click pour zoomer', src: getStaticMapUrl(asPost.latitude, asPost.longitude)})
|
||||
.data('lat', asPost.latitude)
|
||||
.data('lng', asPost.longitude)
|
||||
.click(function(){
|
||||
@@ -260,8 +264,8 @@ function getPost(asPost) {
|
||||
break;
|
||||
case 'post':
|
||||
$Body = $('<div>')
|
||||
.append($('<p>', {'class':'message'}).text(asPost.post))
|
||||
.append($('<p>', {'class':'signature'}).text('-- '+asPost.name));
|
||||
.append($('<p>', {'class':'message'}).text(asPost.content))
|
||||
.append($('<p>', {'class':'signature'}).text('-- '+asPost.formatted_name));
|
||||
sClass = 'comment';
|
||||
break;
|
||||
case 'poster':
|
||||
@@ -278,10 +282,24 @@ function getPost(asPost) {
|
||||
.append($('<span>', {'class':'time', 'title':sAbsTime}).text(sRelTime)))
|
||||
.append($('<div>', {'class':'body'}).append($Body));
|
||||
|
||||
if(asPost.id) $Post.find('.index').append(' '+asPost.id);
|
||||
if(asPost.displayed_id) $Post.find('.index').append(' '+asPost.displayed_id);
|
||||
|
||||
//if(asPost.type=='picture' && asPost.rotate!='0') $Body.height($Image.height());
|
||||
|
||||
return $Post;
|
||||
}
|
||||
|
||||
function getStaticMapUrl(oCenterLat, oCenterLng){
|
||||
var sDomain = 'https://maps.googleapis.com/maps/api/staticmap';
|
||||
var asParams = {
|
||||
center: oCenterLat+','+oCenterLng,
|
||||
zoom: '13',
|
||||
size: '400x300',
|
||||
maptype: 'satellite',
|
||||
markers: 'color:green|label:|'+oCenterLat+','+oCenterLng,
|
||||
key: self.vars('google_api')
|
||||
};
|
||||
|
||||
return sDomain+'?'+Object.keys(asParams).map(k => k+'='+asParams[k]).join('&');
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user