add pictures to messages
This commit is contained in:
41
inc/spot.php
41
inc/spot.php
@@ -167,10 +167,36 @@ class Spot extends Main
|
||||
if(Settings::MODE!=self::MODE_HISTO && mb_substr($sLastMsg, 0, 10) != date('Y-m-d')) $this->updateFeed($sRefFeedId);
|
||||
|
||||
//Extract messages
|
||||
$asMessages = $this->getSpotMessages();
|
||||
$asMessages = array_values($this->getSpotMessages());
|
||||
$bSuccess = !empty($asMessages);
|
||||
$sDesc = $bSuccess?'':self::NO_DATA;
|
||||
|
||||
//Add pictures
|
||||
if($bSuccess) {
|
||||
$asPics = $this->getPictures();
|
||||
|
||||
//Sort messages and pictures chronologically
|
||||
uasort($asPics, function($a, $b){return $a['unix_timestamp'] > $b['unix_timestamp'];});
|
||||
uasort($asMessages, function($a, $b){return $a['unix_timestamp'] > $b['unix_timestamp'];});
|
||||
|
||||
//Assign pictures to closest message
|
||||
$iIndex = 0;
|
||||
$iMaxIndex = count($asMessages) - 1;
|
||||
foreach($asPics as $asPic) {
|
||||
while($iIndex <= $iMaxIndex && $asPic['unix_timestamp'] > $asMessages[$iIndex]['unix_timestamp']) {
|
||||
$iIndex++;
|
||||
}
|
||||
if($iIndex == 0) $iMsgIndex = $iIndex;
|
||||
elseif($iIndex > $iMaxIndex) $iMsgIndex = $iMaxIndex;
|
||||
else {
|
||||
$iHalfWayPoint = ($asMessages[$iIndex]['unix_timestamp'] - $asMessages[$iIndex - 1]['unix_timestamp'])/2;
|
||||
$iMsgIndex = ($asPic['unix_timestamp'] >= $iHalfWayPoint)?$iIndex:($iIndex - 1);
|
||||
}
|
||||
|
||||
$asMessages[$iMsgIndex]['pics'][] = $asPic;
|
||||
}
|
||||
}
|
||||
|
||||
return self::getJsonResult($bSuccess, $sDesc, $asMessages);
|
||||
}
|
||||
|
||||
@@ -185,11 +211,11 @@ class Spot extends Main
|
||||
$asMessages = $this->oDb->selectRows($asInfo);
|
||||
foreach($asMessages as $iKey=>$asMessage)
|
||||
{
|
||||
$iUnixTimeStamp = strtotime($asMessage['timestamp']);
|
||||
$asMessages[$iKey]['unix_timestamp'] = (int) $asMessages[$iKey]['unix_timestamp'];
|
||||
$asMessages[$iKey]['latitude'] = floatval($asMessages[$iKey]['latitude']);
|
||||
$asMessages[$iKey]['longitude'] = floatval($asMessages[$iKey]['longitude']);
|
||||
$asMessages[$iKey]['relative_time'] = Toolbox::getDateTimeDesc($iUnixTimeStamp);
|
||||
$asMessages[$iKey]['formatted_time'] = date(self::FORMAT_TIME, $iUnixTimeStamp);
|
||||
$asMessages[$iKey]['relative_time'] = Toolbox::getDateTimeDesc($asMessages[$iKey]['unix_timestamp']);
|
||||
$asMessages[$iKey]['formatted_time'] = date(self::FORMAT_TIME, $asMessages[$iKey]['unix_timestamp']);
|
||||
}
|
||||
return $asMessages;
|
||||
}
|
||||
@@ -216,7 +242,7 @@ class Spot extends Main
|
||||
'path' => $sPicPath,
|
||||
'thumb_path' => $sThumbnailPath,
|
||||
'rotate' => $asPicInfo['rotate'],
|
||||
'timestamp' => $iPicTimeStamp,
|
||||
'unix_timestamp'=> $iPicTimeStamp,
|
||||
'formatted_time'=> date(self::FORMAT_TIME, $iPicTimeStamp),
|
||||
'relative_time' => Toolbox::getDateTimeDesc($iPicTimeStamp)
|
||||
);
|
||||
@@ -236,6 +262,7 @@ class Spot extends Main
|
||||
$asPosts = $this->oDb->selectRows($asInfo);
|
||||
foreach($asPosts as &$asPost) {
|
||||
$iUnixTimeStamp = strtotime($asPost['led']);
|
||||
$asPost['unix_timestamp'] = $iUnixTimeStamp;
|
||||
$asPost['relative_time'] = Toolbox::getDateTimeDesc($iUnixTimeStamp);
|
||||
$asPost['formatted_time'] = date(self::FORMAT_TIME, $iUnixTimeStamp);
|
||||
$asPost['formatted_name'] = Toolbox::mb_ucwords($asPost['name']);
|
||||
@@ -268,7 +295,7 @@ class Spot extends Main
|
||||
$asPics = $this->getPictures();
|
||||
foreach($asPics as $iKey=>$asPic)
|
||||
{
|
||||
$iId = self::getJsonId($asPic['timestamp'], '1', $iKey);
|
||||
$iId = self::getJsonId($asPic['unix_timestamp'], '1', $iKey);
|
||||
$asFeed[$iId] = $asPic;
|
||||
$asFeed[$iId]['type'] = 'picture';
|
||||
}
|
||||
@@ -277,7 +304,7 @@ class Spot extends Main
|
||||
$asPosts = $this->getPosts();
|
||||
foreach($asPosts as $asPost)
|
||||
{
|
||||
$iId = self::getJsonId(strtotime($asPost['led']), '2', $asPost[Db::getId(self::POST_TABLE)]);
|
||||
$iId = self::getJsonId($asPost['unix_timestamp'], '2', $asPost[Db::getId(self::POST_TABLE)]);
|
||||
$asFeed[$iId] = $asPost;
|
||||
$asFeed[$iId]['type'] = 'post';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user