diff --git a/.gitignore b/.gitignore index dcd8bcc..f5ed1c8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,9 @@ /.project /style/.sass-cache/ /.settings/ -/files/*.jpg -/files/*.JPG -/files/*.jpeg -/files/*.JPEG -/files/*.png -/files/*.PNG +/files/**/*.jpg +/files/**/*.JPG +/files/**/*.jpeg +/files/**/*.JPEG +/files/**/*.png +/files/**/*.PNG diff --git a/inc/spot.php b/inc/spot.php index f82b6ce..983d0d6 100755 --- a/inc/spot.php +++ b/inc/spot.php @@ -18,6 +18,10 @@ class Spot extends Main const SPOT_TABLE = 'spots'; const POST_TABLE = 'posts'; + //Picture folders + const PIC_FOLDER = 'files/'; + const THUMB_FOLDER = self::PIC_FOLDER.'thumbs/'; + const FORMAT_TIME = 'd/m/Y à H:i'; const FEED_CHUNK_SIZE = 15; @@ -150,15 +154,13 @@ class Spot extends Main public function getMessages($sRefFeedId=self::FEED_ID) { - //Adding another point to test - /* + /* Adding another point to test $test = $this->oDb->selectRow(self::MSG_TABLE, 1); unset($test['id_message']); $test['ref_msg_id'] = $test['ref_msg_id'] + 1; $test['latitude'] = '-41.4395'; $test['longitude'] = '172.1936'; - $this->oDb->insertUpdateRow(self::MSG_TABLE, $test, array('ref_msg_id')); - */ + $this->oDb->insertUpdateRow(self::MSG_TABLE, $test, array('ref_msg_id')); */ //Check last message & update feed if necessary (max once a day) $sLastMsg = $this->oDb->selectValue(self::FEED_TABLE, 'led', array('ref_feed_id'=>$sRefFeedId)); @@ -194,7 +196,7 @@ class Spot extends Main private function getPictures() { - $asPicPaths = glob('files/*.{jpg,JPG,jpeg,JPEG,png,PNG}', GLOB_BRACE); + $asPicPaths = glob(self::PIC_FOLDER.'*.{jpg,JPG,jpeg,JPEG,png,PNG}', GLOB_BRACE); $asPics = array(); foreach($asPicPaths as $sPicPath) @@ -203,12 +205,16 @@ class Spot extends Main $asPicInfo = self::getPicInfo($sPicPath); $iPicTimeStamp = $asPicInfo['timestamp']; - //Preparing pictures sorting key and related info + //Get/Create thumbnail + $sThumbnailPath = self::getPicThumbnail($sPicPath); + + //Filter on valid time interval (Histo mode only) if( Settings::MODE != self::MODE_HISTO || - ($iPicTimeStamp >= strtotime(Settings::HISTO_SPAN['from']) && $iPicTimeStamp <= strtotime(Settings::HISTO_SPAN['to']))) { + $iPicTimeStamp >= strtotime(Settings::HISTO_SPAN['from']) && $iPicTimeStamp <= strtotime(Settings::HISTO_SPAN['to'])) { $asPics[] = array( 'path' => $sPicPath, + 'thumb_path' => $sThumbnailPath, 'rotate' => $asPicInfo['rotate'], 'timestamp' => $iPicTimeStamp, 'formatted_time'=> date(self::FORMAT_TIME, $iPicTimeStamp), @@ -331,11 +337,22 @@ class Spot extends Main return array( 'timestamp' => $iPicTimeStamp, - 'taken_ts' => $iPicTimeStamp, - 'file_ts' => $iPicTimeStamp, + 'taken_ts' => $iPicTakenTimeStamp, + 'file_ts' => $iPicFileTimeStamp, 'rotate' => $sRotate ); } + + public static function getPicThumbnail($sPicPath) + { + $sPicName = pathinfo($sPicPath, PATHINFO_BASENAME); + $sThumbPath = self::THUMB_FOLDER.$sPicName; + + if(!file_exists($sThumbPath)) $asThumbInfo = ToolBox::createThumbnail($sPicPath, 400, 0, $sThumbPath/*, false, array('jpg', 'jpeg', 'gif', 'png'), true*/); + else $asThumbInfo = array('error'=>'', 'out'=>$sThumbPath); + + return ($asThumbInfo['error']=='')?$asThumbInfo['out']:$sPicPath; + } } ?> \ No newline at end of file diff --git a/masks/messages.html b/masks/messages.html index ea186f8..d6f489e 100755 --- a/masks/messages.html +++ b/masks/messages.html @@ -15,7 +15,7 @@ - +