dont use numRows and fix some of the gallary hooks

This commit is contained in:
Robin Appelman 2012-03-07 17:31:01 +01:00
parent 1d88ab57ec
commit d8d2939668
4 changed files with 29 additions and 21 deletions

View File

@ -102,9 +102,9 @@ function handleGetGallery($path) {
while ($r = $result->fetchRow()) { while ($r = $result->fetchRow()) {
$album_name = $r['album_name']; $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']); $result = OC_Gallery_Photo::find($album_details['album_id']);

View File

@ -107,6 +107,13 @@ class OC_Gallery_Album {
rename($thumbpath.$oldname.'.png', $thumbpath.$newname.'.png'); 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'];
}
} }
?> ?>

View File

@ -37,7 +37,7 @@ class OC_Gallery_Hooks_Handlers {
} }
private static function directoryContainsPhotos($dirpath) { private static function directoryContainsPhotos($dirpath) {
$dirhandle = opendir(OC::$CONFIG_DATADIRECTORY.$dirpath); $dirhandle = OC_Filesystem::opendir($dirpath.'/');
if ($dirhandle != FALSE) { if ($dirhandle != FALSE) {
while (($filename = readdir($dirhandle)) != FALSE) { while (($filename = readdir($dirhandle)) != FALSE) {
if ($filename[0] == '.') continue; if ($filename[0] == '.') continue;
@ -76,9 +76,9 @@ class OC_Gallery_Hooks_Handlers {
public static function removePhoto($params) { public static function removePhoto($params) {
$path = $params[OC_Filesystem::signal_param_path]; $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; 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)) { } elseif (self::isPhoto($path)) {
OC_Gallery_Photo::removeByPath($path); OC_Gallery_Photo::removeByPath($path);
} }
@ -87,11 +87,11 @@ class OC_Gallery_Hooks_Handlers {
public static function renamePhoto($params) { public static function renamePhoto($params) {
$oldpath = $params[OC_Filesystem::signal_param_oldpath]; $oldpath = $params[OC_Filesystem::signal_param_oldpath];
$newpath = $params[OC_Filesystem::signal_param_newpath]; $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()); OC_Gallery_Album::changePath($oldpath, $newpath, OC_User::getUser());
} elseif (!self::isPhoto($newpath)) { } elseif (self::isPhoto($newpath)) {
$olddir = substr($oldpath, 0, strrpos($oldpath, '/')); $olddir = dirname($oldpath);
$newdir = substr($newpath, 0, strrpos($newpath, '/')); $newdir = dirname($newpath);
if ($olddir == '') $olddir = '/'; if ($olddir == '') $olddir = '/';
if ($newdir == '') $newdir = '/'; if ($newdir == '') $newdir = '/';
if (!self::isPhoto($newpath)) return; if (!self::isPhoto($newpath)) return;
@ -101,25 +101,26 @@ class OC_Gallery_Hooks_Handlers {
$oldAlbumId; $oldAlbumId;
if ($olddir == $newdir) { if ($olddir == $newdir) {
// album changing is not needed // album changing is not needed
$album = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir); $albums = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir);
if ($album->numRows() == 0) { $album = $albums->fetchRow();
$album = self::createAlbum($newdir); if (!$album) {
$albums = self::createAlbum($newdir);
$album = $albums->fetchRow();
} }
$album = $album->fetchRow();
$newAlbumId = $oldAlbumId = $album['album_id']; $newAlbumId = $oldAlbumId = $album['album_id'];
} else { } else {
$newalbum = OC_Gallery_Album::find(OC_User::getUser(), null, $newdir); $newalbum = OC_Gallery_Album::find(OC_User::getUser(), null, $newdir);
$oldalbum = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir); $oldalbum = OC_Gallery_Album::find(OC_User::getUser(), null, $olddir);
if ($newalbum->numRows() == 0) { if (!($newalbum = $newalbum->fetchRow())) {
$newalbum = self::createAlbum($newdir); $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); OC_Gallery_Photo::create($newalbum['album_id'], $newpath);
return; return;
} }
$oldalbum = $oldalbum->fetchRow();
$newAlbumId = $newalbum['album_id']; $newAlbumId = $newalbum['album_id'];
$oldAlbumId = $oldalbum['album_id']; $oldAlbumId = $oldalbum['album_id'];

View File

@ -62,15 +62,15 @@ class OC_Gallery_Scanner {
$result = OC_Gallery_Album::find(OC_User::getUser(), /*$current_album['name']*/ null, $path); $result = OC_Gallery_Album::find(OC_User::getUser(), /*$current_album['name']*/ null, $path);
// don't duplicate galleries with same path (bug oc-33) // don't duplicate galleries with same path (bug oc-33)
if ($result->numRows() == 0 && count($current_album['images'])) { if (!($albumId = $result->fetchRow()) && count($current_album['images'])) {
OC_Gallery_Album::create(OC_User::getUser(), $current_album['name'], $path); OC_Gallery_Album::create(OC_User::getUser(), $current_album['name'], $path);
$result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']); $result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']);
}
$albumId = $result->fetchRow(); $albumId = $result->fetchRow();
}
$albumId = $albumId['album_id']; $albumId = $albumId['album_id'];
foreach ($current_album['images'] as $img) { foreach ($current_album['images'] as $img) {
$result = OC_Gallery_Photo::find($albumId, $img); $result = OC_Gallery_Photo::find($albumId, $img);
if ($result->numRows() == 0) { if (!$result->fetchRow()) {
OC_Gallery_Photo::create($albumId, $img); OC_Gallery_Photo::create($albumId, $img);
} }
} }