Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek Przybylski <bart.p.pl@gmail.com>2011-10-01 13:26:47 +0400
committerBartek Przybylski <bart.p.pl@gmail.com>2011-10-01 13:26:47 +0400
commit83e7f9d54a7275d88880419e7a3f36b1d39cdc14 (patch)
tree7d74ed17c0af8297fe81cf242534f3bafb727a48 /apps/gallery/ajax
parentbcf92badd1dae888fec85c1b3615a924a2e6a859 (diff)
showing galleries bahaviour change
Diffstat (limited to 'apps/gallery/ajax')
-rw-r--r--apps/gallery/ajax/getAlbums.php22
-rw-r--r--apps/gallery/ajax/getCovers.php62
2 files changed, 78 insertions, 6 deletions
diff --git a/apps/gallery/ajax/getAlbums.php b/apps/gallery/ajax/getAlbums.php
new file mode 100644
index 00000000000..3fc1b7467e8
--- /dev/null
+++ b/apps/gallery/ajax/getAlbums.php
@@ -0,0 +1,22 @@
+<?
+require_once('../../../lib/base.php');
+
+if (!OC_User::IsLoggedIn()) {
+ echo json_encode(array('status' => 'error', 'message' => 'You need to log in'));
+ exit();
+}
+
+$a = array();
+$stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_albums WHERE uid_owner = ?');
+$result = $stmt->execute(array(OC_User::getUser()));
+
+while ($r = $result->fetchRow()) {
+ $album_name = $r['album_name'];
+ $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_photos WHERE album_id = ?');
+ $tmp_res = $stmt->execute(array($r['album_id']));
+ $a[] = array('name' => $album_name, 'numOfItems' => min($tmp_res->numRows(), 10));
+}
+
+echo json_encode(array('status'=>'success', 'albums'=>$a));
+
+?>
diff --git a/apps/gallery/ajax/getCovers.php b/apps/gallery/ajax/getCovers.php
index 69c03d3a446..d649edaf140 100644
--- a/apps/gallery/ajax/getCovers.php
+++ b/apps/gallery/ajax/getCovers.php
@@ -1,16 +1,66 @@
<?
-
require_once('../../../lib/base.php');
-$album_name = $_GET['album'];
+function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height, $tgtImg, $shift) {
+ //getting the image dimensions
+ list($width_orig, $height_orig) = getimagesize($imgSrc);
+ switch (strtolower(substr($imgSrc, strrpos($imgSrc, '.')+1))) {
+ case "jpeg":
+ case "jpg":
+ case "tiff":
+ $myImage = imagecreatefromjpeg($imgSrc);
+ break;
+ case "png":
+ $myImage = imagecreatefrompng($imgSrc);
+ break;
+ default:
+ exit();
+ }
+ $ratio_orig = $width_orig/$height_orig;
+
+ if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
+ $new_height = $thumbnail_width/$ratio_orig;
+ $new_width = $thumbnail_width;
+ } else {
+ $new_width = $thumbnail_height*$ratio_orig;
+ $new_height = $thumbnail_height;
+ }
+
+ $x_mid = $new_width/2; //horizontal middle
+ $y_mid = $new_height/2; //vertical middle
+
+ $process = imagecreatetruecolor(round($new_width), round($new_height));
+
+ imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
+ imagecopyresampled($tgtImg, $process, $shift, 0, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width, $thumbnail_height, $thumbnail_width, $thumbnail_height);
+
+ imagedestroy($process);
+ imagedestroy($myImage);
+}
+
+// Check if we are a user
+if( !OC_User::isLoggedIn()){
+ echo json_encode( array( 'status' => 'error', 'data' => array( 'message' => 'You need to log in.')));
+ exit();
+}
+$box_size = 200;
+$album_name= $_GET['album_name'];
$stmt = OC_DB::prepare('SELECT file_path FROM *PREFIX*gallery_photos,*PREFIX*gallery_albums WHERE *PREFIX*gallery_albums.uid_owner = ? AND album_name = ? AND *PREFIX*gallery_photos.album_id == *PREFIX*gallery_albums.album_id');
$result = $stmt->execute(array(OC_User::getUser(), $album_name));
-$images = array();
-while ($i = $result->fetchRow()) {
- $images[] = $i['file_path'];
+
+$numOfItems = min($result->numRows(),10);
+
+$targetImg = imagecreatetruecolor($numOfItems*$box_size, $box_size);
+$counter = 0;
+while (($i = $result->fetchRow()) && $counter < $numOfItems) {
+ $imagePath = OC::$CONFIG_DATADIRECTORY . $i['file_path'];
+ CroppedThumbnail($imagePath, $box_size, $box_size, $targetImg, $counter*$box_size);
+ $counter++;
}
-echo json_encode(array('status' => 'success', 'imageCount' => $result->numRows(), 'images' => $images));
+header('Content-Type: image/png');
+imagepng($targetImg);
+imagedestroy($targetImg);
?>