handle gallery remove when removing dir via webinterface

This commit is contained in:
Bartek Przybylski 2012-01-14 14:59:18 +01:00
parent 4d1c414ffb
commit e0dc8b8ab2
3 changed files with 17 additions and 2 deletions

View File

@ -42,6 +42,13 @@ class OC_Gallery_Album {
$stmt = OC_DB::prepare($sql);
return $stmt->execute($args);
}
public static function removeByPath($path, $owner) {
$album = self::find($owner, null, $path);
$album = $album->fetchRow();
self::remove($owner, $album['album_name']);
OC_Gallery_Photo::removeByAlbumId($album['album_id']);
}
public static function find($owner, $name=null, $path=null){
$sql = 'SELECT * FROM *PREFIX*gallery_albums WHERE uid_owner = ?';

View File

@ -83,8 +83,11 @@ class OC_Gallery_Hooks_Handlers {
public static function removePhoto($params) {
$path = $params['path'];
if (!self::isPhoto($path)) return;
OC_Gallery_Photo::removeByPath($path);
if (OC_Filesystem::is_dir($path) && self::directoryContainsPhotos($path)) {
OC_Gallery_Album::removeByPath($path, OC_User::getUser());
} elseif (self::isPhoto($path)) {
OC_Gallery_Photo::removeByPath($path);
}
}
public static function renamePhoto($params) {

View File

@ -56,6 +56,11 @@ class OC_Gallery_Photo{
$stmt->execute(array($id));
}
public static function removeByAlbumId($albumid) {
$stmt = OC_DB::prepare('DELETE FROM *PREFIX*gallery_photos WHERE album_id = ?');
$stmt->execute(array($albumid));
}
public static function changePath($oldAlbumId, $newAlbumId, $oldpath, $newpath) {
$stmt = OC_DB::prepare("UPDATE *PREFIX*gallery_photos SET file_path = ?, album_id = ? WHERE album_id = ? and file_path = ?");
$stmt->execute(array($newpath, $newAlbumId, $oldAlbumId, $oldpath));