creating and retrive thumbnails for intermediate galleries

This commit is contained in:
Bartek Przybylski 2012-03-17 23:41:10 +01:00
parent 7ba8dbb920
commit de09883d86
3 changed files with 23 additions and 4 deletions

View File

@ -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));
}

View File

@ -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'];
}
}
?>

View File

@ -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);
}
}
}