Re: Cake Gallery
Thanks On Sat, Mar 30, 2013 at 11:50 PM, Chris wrote: > this is how I upload images and create thumbs in any sizes without any > plugin,... of course you have to modify to your own needs,... don't forget > to create subdirectories in webroot/photos/ original,... thumbs,... etc,... > and chmod to 777 > > function upload in photos_controller: > > > function upload() > { > $this->authorize(); > > $user = $this->User->findById($this->user['id']); > > > if(!($user && ($user['User']['photos_limit'] == 0 || > $user['User']['photos'] < $user['User']['photos_limit']))) > { > exit('You reached your upload limit'); > } > else > { > $fileParts = $_FILES['Filedata']['name']; > $secret = $this->generateRandomString(20); > $name = str_replace(array('.jpg', '.jpeg', '.JPG', '.JPEG', '.png', > '.PNG'), '', $fileParts); > > if($this->Photo->save(array('Photo' => array('name' => $name, > 'user_id' => $this->user['id'], 'secret' => $secret, 'hidden' => 0, > 'privacy' => array_search($_GET['privacy'], > Configure::read('Site.privacy')) > { > $this->User->query('UPDATE fociki_users' . > ' SET photos = photos + 1' . > ', last_public_photo = (SELECT created FROM fociki_photos WHERE > user_id = ' . $this->user['id'] . ' AND fociki_photos.privacy <= ' . > array_search('public', Configure::read('Site.privacy')) .' ORDER BY created > DESC LIMIT 1)' . > ', last_friend_photo = (SELECT created FROM fociki_photos WHERE > user_id = ' . $this->user['id'] . ' AND fociki_photos.privacy <= ' . > array_search('friend', Configure::read('Site.privacy')) .' ORDER BY created > DESC LIMIT 1)' . > ' WHERE id = ' . $this->user['id']); > > > $original_file = $this->Photo->getOriginalFile($this->Photo->id, > $secret, true); > $original_file_path = $original_file->pwd(); > $tempFile = $_FILES['Filedata']['tmp_name']; > > move_uploaded_file($tempFile, $original_file_path); > > exec('/usr/bin/convert -geometry 400x350 ' . $original_file_path . > ' ' . $this->Photo->getMediumFile($this->Photo->id, $secret)->pwd() .' > > /dev/null 2>&1 &'); > > exec('/usr/bin/convert -geometry 145x145 ' . $original_file_path . > ' ' . $this->Photo->getSmallFile($this->Photo->id, $secret)->pwd() .' > > /dev/null 2>&1 &'); > > exec('/usr/bin/convert -thumbnail x150 -resize "150x<" -resize 50% > -gravity center -crop 75x75+0+0 +repage ' . $original_file_path . ' ' . > $this->Photo->getSquareFile($this->Photo->id, $secret)->pwd() .' > > /dev/null 2>&1 &'); > exec('/usr/bin/convert -thumbnail x96 -resize "96x<" -resize 50% > -gravity center -crop 48x48+0+0 +repage ' . $original_file_path . ' ' . > $this->Photo->getBuddyFile($this->Photo->id, $secret)->pwd() .' > /dev/null > 2>&1 &'); > > exec('/usr/bin/convert -geometry 500x450 ' . $original_file_path . > ' ' . $this->Photo->getLargeFile($this->Photo->id, $secret)->pwd() .' > > /dev/null 2>&1 &'); > > } > > echo 'OK'; > die(); > > } > } > > > and here is the Model photo.php > > class Photo extends AppModel { > var $name = 'Photo'; > > var $validate = array( > 'user_id' => array( > 'rule' => 'notEmpty' > ), > 'name' => array( > 'rule' => 'notEmpty' > ), > ); > > var $belongsTo = 'User'; > > var $hasMany = array( > 'PhotoTag' => array('order' => array('tag' => 'ASC')), > 'PhotoNote' => array('order' => array('created' => 'ASC')), > ); > > > > function getOriginalFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'original' . DS . $id . '-' > . $secret . '.jpg', $create, $chmod); > } > > function getLargeFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'large' . DS . $id . '-' . > $secret . '.jpg', $create, $chmod); > } > > function getMediumFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'medium' . DS . $id . '-' . > $secret . '.jpg', $create, $chmod); > } > > function getSmallFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'small' . DS . $id . '-' . > $secret . '.jpg', $create, $chmod); > } > > function getThumbFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'thumb' . DS . $id . '-' . > $secret . '.jpg', $create, $chmod); > } > > function getSquareFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'square' . DS . $id . '-' . > $secret . '.jpg', $create, $chmod); > } > > function getBannerFile($id, $secret, $create = null, $chmod = null) > { > return new File(WWW_ROOT . 'photos' . DS . 'banner' . DS . $id . '-' . > $secret . '.jpg', $create, $chmod); > } > > function getBuddyFile($id, $secret, $create = null
Re: Cake Gallery
this is how I upload images and create thumbs in any sizes without any plugin,... of course you have to modify to your own needs,... don't forget to create subdirectories in webroot/photos/ original,... thumbs,... etc,... and chmod to 777 function upload in photos_controller: function upload() { $this->authorize(); $user = $this->User->findById($this->user['id']); if(!($user && ($user['User']['photos_limit'] == 0 || $user['User']['photos'] < $user['User']['photos_limit']))) { exit('You reached your upload limit'); } else { $fileParts = $_FILES['Filedata']['name']; $secret = $this->generateRandomString(20); $name = str_replace(array('.jpg', '.jpeg', '.JPG', '.JPEG', '.png', '.PNG'), '', $fileParts); if($this->Photo->save(array('Photo' => array('name' => $name, 'user_id' => $this->user['id'], 'secret' => $secret, 'hidden' => 0, 'privacy' => array_search($_GET['privacy'], Configure::read('Site.privacy')) { $this->User->query('UPDATE fociki_users' . ' SET photos = photos + 1' . ', last_public_photo = (SELECT created FROM fociki_photos WHERE user_id = ' . $this->user['id'] . ' AND fociki_photos.privacy <= ' . array_search('public', Configure::read('Site.privacy')) .' ORDER BY created DESC LIMIT 1)' . ', last_friend_photo = (SELECT created FROM fociki_photos WHERE user_id = ' . $this->user['id'] . ' AND fociki_photos.privacy <= ' . array_search('friend', Configure::read('Site.privacy')) .' ORDER BY created DESC LIMIT 1)' . ' WHERE id = ' . $this->user['id']); $original_file = $this->Photo->getOriginalFile($this->Photo->id, $secret, true); $original_file_path = $original_file->pwd(); $tempFile = $_FILES['Filedata']['tmp_name']; move_uploaded_file($tempFile, $original_file_path); exec('/usr/bin/convert -geometry 400x350 ' . $original_file_path . ' ' . $this->Photo->getMediumFile($this->Photo->id, $secret)->pwd() .' > /dev/null 2>&1 &'); exec('/usr/bin/convert -geometry 145x145 ' . $original_file_path . ' ' . $this->Photo->getSmallFile($this->Photo->id, $secret)->pwd() .' > /dev/null 2>&1 &'); exec('/usr/bin/convert -thumbnail x150 -resize "150x<" -resize 50% -gravity center -crop 75x75+0+0 +repage ' . $original_file_path . ' ' . $this->Photo->getSquareFile($this->Photo->id, $secret)->pwd() .' > /dev/null 2>&1 &'); exec('/usr/bin/convert -thumbnail x96 -resize "96x<" -resize 50% -gravity center -crop 48x48+0+0 +repage ' . $original_file_path . ' ' . $this->Photo->getBuddyFile($this->Photo->id, $secret)->pwd() .' > /dev/null 2>&1 &'); exec('/usr/bin/convert -geometry 500x450 ' . $original_file_path . ' ' . $this->Photo->getLargeFile($this->Photo->id, $secret)->pwd() .' > /dev/null 2>&1 &'); } echo 'OK'; die(); } } and here is the Model photo.php array( 'rule' => 'notEmpty' ), 'name' => array( 'rule' => 'notEmpty' ), ); var $belongsTo = 'User'; var $hasMany = array( 'PhotoTag' => array('order' => array('tag' => 'ASC')), 'PhotoNote' => array('order' => array('created' => 'ASC')), ); function getOriginalFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'original' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getLargeFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'large' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getMediumFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'medium' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getSmallFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'small' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getThumbFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'thumb' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getSquareFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'square' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getBannerFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'banner' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function getBuddyFile($id, $secret, $create = null, $chmod = null) { return new File(WWW_ROOT . 'photos' . DS . 'buddy' . DS . $id . '-' . $secret . '.jpg', $create, $chmod); } function beforeDelete() { $this->loadModels('PhotoComment', 'PhotoTag', 'PhotoFavorite', 'PhotoLike', 'PhotoDislike', 'Notification'); $photo = $this->findById($this->id()); $this->secret = $p
Cake Gallery
Hi All, I am trying to use the cake_gallery plugin https://github.com/vitorpc/cake_gallery for cake 1.3 but for some reason the thumbnail is not generated. Seems some issue with photo.php model?? In firebug i get some errors. Warning (2): imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions [APP\plugins\cake_gallery\models\photo.php, line 104] I have GD on my server. same errors on my server as my xampp server. Anyone have any luck with this or can recommend a gallery plugin with upload and thumb creation Thank you Robert -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php?hl=en. For more options, visit https://groups.google.com/groups/opt_out.