summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/gallery/ajax/galleryOp.php2
-rw-r--r--apps/gallery/lib/album.php16
-rw-r--r--apps/gallery/lib/scanner.php9
3 files changed, 23 insertions, 4 deletions
diff --git a/apps/gallery/ajax/galleryOp.php b/apps/gallery/ajax/galleryOp.php
index 25976fa9e32..459c30f6ac6 100644
--- a/apps/gallery/ajax/galleryOp.php
+++ b/apps/gallery/ajax/galleryOp.php
@@ -97,6 +97,8 @@ function handleGetGallery($path) {
while ($r = $result->fetchRow()) {
$album_name = $r['album_name'];
$size=OC_Gallery_Album::getAlbumSize($r['album_id']);
+ // this is a fallback mechanism and seems expensive
+ if ($size == 0) $size = OC_Gallery_Album::getIntermediateGallerySize($r['album_path']);
$a[] = array('name' => utf8_encode($album_name), 'numOfItems' => min($size, 10),'path'=>substr($r['album_path'], $pathLen));
}
diff --git a/apps/gallery/lib/album.php b/apps/gallery/lib/album.php
index e8698590e6d..070afdd6cd6 100644
--- a/apps/gallery/lib/album.php
+++ b/apps/gallery/lib/album.php
@@ -98,11 +98,19 @@ class OC_Gallery_Album {
}
public static function getAlbumSize($id){
- $sql = 'SELECT COUNT(*) as size FROM *PREFIX*gallery_photos WHERE album_id = ?';
- $stmt = OC_DB::prepare($sql);
- $result=$stmt->execute(array($id))->fetchRow();
- return $result['size'];
+ $sql = 'SELECT COUNT(*) as size FROM *PREFIX*gallery_photos WHERE album_id = ?';
+ $stmt = OC_DB::prepare($sql);
+ $result=$stmt->execute(array($id))->fetchRow();
+ return $result['size'];
}
+
+ public static function getIntermediateGallerySize($path) {
+ $path .= '%';
+ $sql = 'SELECT COUNT(*) as size FROM *PREFIX*gallery_photos photos, *PREFIX*gallery_albums albums WHERE photos.album_id = albums.album_id AND uid_owner = ? AND file_path LIKE ?';
+ $stmt = OC_DB::prepare($sql);
+ $result = $stmt->execute(array(OC_User::getUser(), $path))->fetchRow();
+ return $result['size'];
+ }
}
?>
diff --git a/apps/gallery/lib/scanner.php b/apps/gallery/lib/scanner.php
index 929f8b7a2e3..c8825c267eb 100644
--- a/apps/gallery/lib/scanner.php
+++ b/apps/gallery/lib/scanner.php
@@ -95,6 +95,15 @@ class OC_Gallery_Scanner {
foreach ($a as $e) {
$p .= ($p == '/'?'':'/').$e;
OC_Gallery_Album::create(OC_User::getUser(), $e, $p);
+ $arr = OC_FileCache::searchByMime('image','', OC_Filesystem::getRoot().$p);
+ $step = floor(count($arr)/10);
+ if ($step == 0) $step = 1;
+ $na = array();
+ for ($j = 0; $j < count($arr); $j+=$step) {
+ $na[] = $p.$arr[$j];
+ }
+ if (count($na))
+ self::createThumbnails($e, $na);
}
}
}