]> source.dussan.org Git - nextcloud-server.git/commitdiff
dont use numRows and fix some of the gallary hooks
authorRobin Appelman <icewind@owncloud.com>
Wed, 7 Mar 2012 16:31:01 +0000 (17:31 +0100)
committerRobin Appelman <icewind@owncloud.com>
Wed, 7 Mar 2012 16:31:01 +0000 (17:31 +0100)
apps/gallery/ajax/galleryOp.php
apps/gallery/lib/album.php
apps/gallery/lib/hooks_handlers.php
apps/gallery/lib/scanner.php

index 74ac905d072a6d2c4b688aa0f94da9bfdfb5483a..f33eb46041b069d27fd3f347fb4abae0466cf8d0 100644 (file)
@@ -102,9 +102,9 @@ function handleGetGallery($path) {
 
   while ($r = $result->fetchRow()) {
     $album_name = $r['album_name'];
-    $tmp_res = OC_Gallery_Photo::find($r['album_id']);
+    $size=OC_Gallery_Album::getAlbumSize($r['album_id']);
 
-    $a[] = array('name' => utf8_encode($album_name), 'numOfItems' => min($tmp_res->numRows(), 10));
+    $a[] = array('name' => utf8_encode($album_name), 'numOfItems' => min($size, 10));
   }
   
   $result = OC_Gallery_Photo::find($album_details['album_id']);
index 317e8209de4658cfc27e5d2c768a44ffdea10dc5..5adb57b554dfedb1eb1e1c5203c1a02d769f09b6 100644 (file)
@@ -107,6 +107,13 @@ class OC_Gallery_Album {
     rename($thumbpath.$oldname.'.png', $thumbpath.$newname.'.png');
   }
 
+  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'];
+  }
+
 }
 
 ?>
index 046866e5c5dbc2ab853b8842c9750c88b78899e5..3c101b1f8a1c07f83c3628c8fb49682cb5fa9ad4 100644 (file)
@@ -37,7 +37,7 @@ class OC_Gallery_Hooks_Handlers {
   }
 
   private static function directoryContainsPhotos($dirpath) {
-    $dirhandle = opendir(OC::$CONFIG_DATADIRECTORY.$dirpath);
+    $dirhandle = OC_Filesystem::opendir($dirpath.'/');
     if ($dirhandle != FALSE) {
       while (($filename = readdir($dirhandle)) != FALSE) {
         if ($filename[0] == '.') continue;
@@ -76,9 +76,9 @@ class OC_Gallery_Hooks_Handlers {
 
   public static function removePhoto($params) {
     $path = $params[OC_Filesystem::signal_param_path];
-    if (OC_Filesystem::is_dir($path) && self::directoryContainsPhotos($path)) {
+    if (OC_Filesystem::is_dir($path.'/') && self::directoryContainsPhotos($path)) {
       if(!self::pathInRoot($path)) return;
-      OC_Gallery_Album::removeByPath($path.'/', OC_User::getUser());
+      OC_Gallery_Album::removeByPath($path, OC_User::getUser());
     } elseif (self::isPhoto($path)) {
       OC_Gallery_Photo::removeByPath($path);
     }
@@ -87,11 +87,11 @@ class OC_Gallery_Hooks_Handlers {
   public static function renamePhoto($params) {
     $oldpath = $params[OC_Filesystem::signal_param_oldpath];
     $newpath = $params[OC_Filesystem::signal_param_newpath];
-    if (OC_Filesystem::is_dir($newpath) && self::directoryContainsPhotos($newpath)) {
+    if (OC_Filesystem::is_dir($newpath.'/') && self::directoryContainsPhotos($newpath)) {
       OC_Gallery_Album::changePath($oldpath, $newpath, OC_User::getUser());
-    } elseif (!self::isPhoto($newpath)) {
-      $olddir = substr($oldpath, 0, strrpos($oldpath, '/'));
-      $newdir = substr($newpath, 0, strrpos($newpath, '/'));
+    } elseif (self::isPhoto($newpath)) {
+      $olddir = dirname($oldpath);
+      $newdir = dirname($newpath);
       if ($olddir == '') $olddir = '/';
       if ($newdir == '') $newdir = '/';
       if (!self::isPhoto($newpath)) return;
@@ -101,25 +101,26 @@ class OC_Gallery_Hooks_Handlers {
       $oldAlbumId;
       if ($olddir == $newdir) {
         // album changing is not needed
-        $album = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir);
-        if ($album->numRows() == 0) {
-          $album = self::createAlbum($newdir);
+        $albums = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir);
+        $album = $albums->fetchRow();
+        if (!$album) {
+          $albums = self::createAlbum($newdir);
+          $album = $albums->fetchRow();
         }
-        $album = $album->fetchRow();
         $newAlbumId = $oldAlbumId = $album['album_id'];
       } else {
         $newalbum = OC_Gallery_Album::find(OC_User::getUser(), null, $newdir);
         $oldalbum = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir);
 
-        if ($newalbum->numRows() == 0) {
+        if (!($newalbum = $newalbum->fetchRow())) {
           $newalbum = self::createAlbum($newdir);
+          $newalbum = $newalbum->fetchRow();
         }
-        $newalbum = $newalbum->fetchRow();
-        if ($oldalbum->numRows() == 0) {
+        $oldalbum = $oldalbum->fetchRow();
+        if (!$oldalbum) {
           OC_Gallery_Photo::create($newalbum['album_id'], $newpath);
           return;
         }
-        $oldalbum = $oldalbum->fetchRow();
         $newAlbumId = $newalbum['album_id'];
         $oldAlbumId = $oldalbum['album_id'];
 
index 1e8fdb63fb3470a6137662d2717912e6be8d20ac..dbe1abff10e95141c39ad98839097f0835af1669 100644 (file)
@@ -62,15 +62,15 @@ class OC_Gallery_Scanner {
 
     $result = OC_Gallery_Album::find(OC_User::getUser(), /*$current_album['name']*/ null, $path);
     // don't duplicate galleries with same path (bug oc-33)
-    if ($result->numRows() == 0 && count($current_album['images'])) {
-      OC_Gallery_Album::create(OC_User::getUser(), $current_album['name'], $path);
+    if (!($albumId = $result->fetchRow()) && count($current_album['images'])) {
+        OC_Gallery_Album::create(OC_User::getUser(), $current_album['name'], $path);
            $result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']);
+           $albumId = $result->fetchRow();
     }
-    $albumId = $result->fetchRow();
     $albumId = $albumId['album_id'];
     foreach ($current_album['images'] as $img) {
       $result = OC_Gallery_Photo::find($albumId, $img);
-      if ($result->numRows() == 0) {
+      if (!$result->fetchRow()) {
              OC_Gallery_Photo::create($albumId, $img);
       }
     }