2011-12-08 23:04:56 +04:00
< ? php
2012-01-08 14:01:25 +04:00
/**
* ownCloud - gallery application
*
* @ author Bartek Przybylski
2012-03-09 19:28:26 +04:00
* @ copyright 2012 Bartek Przybylski < bartek @ alefzero . eu >
*
2012-01-08 14:01:25 +04:00
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation ; either
* version 3 of the License , or any later version .
2012-03-09 19:28:26 +04:00
*
2012-01-08 14:01:25 +04:00
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
2012-03-11 19:49:21 +04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2012-01-08 14:01:25 +04:00
* GNU AFFERO GENERAL PUBLIC LICENSE for more details .
2012-03-09 19:28:26 +04:00
*
2012-01-08 14:01:25 +04:00
* You should have received a copy of the GNU Lesser General Public
2012-03-11 19:49:21 +04:00
* License along with this library . If not , see < http :// www . gnu . org / licenses />.
2012-03-09 19:28:26 +04:00
*
2012-01-08 14:01:25 +04:00
*/
2011-12-22 00:55:52 +04:00
class OC_Gallery_Album {
2012-01-08 03:14:34 +04:00
public static function create ( $owner , $name , $path ){
2012-05-03 15:06:08 +04:00
$stmt = OCP\DB :: prepare ( 'INSERT INTO *PREFIX*gallery_albums (uid_owner, album_name, album_path, parent_path) VALUES (?, ?, ?, ?)' );
2012-03-11 19:49:21 +04:00
$stmt -> execute ( array ( $owner , $name , $path , self :: getParentPath ( $path )));
2011-12-22 00:55:52 +04:00
}
2012-02-04 00:38:44 +04:00
2012-03-11 19:49:21 +04:00
public static function cleanup () {
2012-05-01 20:50:31 +04:00
$albums = self :: find ( OCP\USER :: getUser ());
2012-03-11 19:49:21 +04:00
while ( $r = $albums -> fetchRow ()) {
OC_Gallery_Photo :: removeByAlbumId ( $r [ 'album_id' ]);
2012-05-01 20:50:31 +04:00
self :: remove ( OCP\USER :: getUser (), $r [ 'album_name' ]);
2012-03-11 19:49:21 +04:00
}
}
2012-03-04 21:28:41 +04:00
2012-03-11 19:49:21 +04:00
public static function getParentPath ( $path ) {
return $path === '/' ? '' : dirname ( $path );
}
2012-03-04 21:28:41 +04:00
2012-03-11 19:49:21 +04:00
public static function remove ( $owner , $name = null , $path = null , $parent = null ) {
$sql = 'DELETE FROM *PREFIX*gallery_albums WHERE uid_owner LIKE ?' ;
2011-12-22 00:55:52 +04:00
$args = array ( $owner );
if ( ! is_null ( $name )){
2012-03-11 19:49:21 +04:00
$sql .= ' AND album_name LIKE ?' ;
2011-12-22 00:55:52 +04:00
$args [] = $name ;
2012-03-11 19:49:21 +04:00
}
if ( ! is_null ( $path )){
$sql .= ' AND album_path LIKE ?' ;
$args [] = $path ;
}
if ( ! is_null ( $parent )){
$sql .= ' AND parent_path LIKE ?' ;
$args [] = $parent ;
}
2012-05-03 15:06:08 +04:00
$stmt = OCP\DB :: prepare ( $sql );
2011-12-22 00:55:52 +04:00
return $stmt -> execute ( $args );
}
2012-01-14 17:59:18 +04:00
2012-07-20 20:56:18 +04:00
public static function removeByName ( $owner , $name ) { self :: remove ( $owner , $name ); }
2012-03-11 19:49:21 +04:00
public static function removeByPath ( $owner , $path ) { self :: remove ( $owner , null , $path ); }
public static function removeByParentPath ( $owner , $parent ) { self :: remove ( $owner , null , null , $parent ); }
2011-12-22 00:55:52 +04:00
2012-03-11 19:49:21 +04:00
public static function find ( $owner , $name = null , $path = null , $parent = null ){
2011-12-08 23:04:56 +04:00
$sql = 'SELECT * FROM *PREFIX*gallery_albums WHERE uid_owner = ?' ;
$args = array ( $owner );
if ( ! is_null ( $name )){
$sql .= ' AND album_name = ?' ;
$args [] = $name ;
2012-03-11 19:49:21 +04:00
}
if ( ! is_null ( $path )){
$sql .= ' AND album_path = ?' ;
$args [] = $path ;
}
if ( ! is_null ( $parent )){
$sql .= ' AND parent_path = ?' ;
$args [] = $parent ;
}
2012-05-09 19:40:59 +04:00
$order = OCP\Config :: getUserValue ( $owner , 'gallery' , 'order' , 'ASC' );
2012-03-11 19:49:21 +04:00
$sql .= ' ORDER BY album_name ' . $order ;
2012-01-17 23:12:26 +04:00
2012-05-03 15:06:08 +04:00
$stmt = OCP\DB :: prepare ( $sql );
2011-12-08 23:04:56 +04:00
return $stmt -> execute ( $args );
}
2012-01-08 03:14:34 +04:00
2012-03-11 19:49:21 +04:00
public static function changePath ( $oldname , $newname , $owner ) {
2012-05-03 15:06:08 +04:00
$stmt = OCP\DB :: prepare ( 'UPDATE *PREFIX*gallery_albums SET album_path=? WHERE uid_owner=? AND album_path=?' );
2012-03-11 19:49:21 +04:00
$stmt -> execute ( array ( $newname , $owner , $oldname ));
}
2012-01-14 16:52:24 +04:00
2012-03-11 19:49:21 +04:00
public static function changeThumbnailPath ( $oldname , $newname ) {
2012-06-06 12:40:22 +04:00
$view = OCP\Files :: getStorage ( 'gallery' );
2012-05-10 00:47:57 +04:00
$view -> rename ( $oldname . '.png' , $newname . '.png' );
2012-03-11 19:49:21 +04:00
}
2012-01-14 16:52:24 +04:00
2012-03-11 19:49:21 +04:00
public static function getAlbumSize ( $id ){
2012-05-09 19:40:59 +04:00
$sql = 'SELECT COUNT(*) as size FROM *PREFIX*gallery_photos WHERE album_id = ?' ;
$stmt = OCP\DB :: prepare ( $sql );
$result = $stmt -> execute ( array ( $id )) -> fetchRow ();
return $result [ 'size' ];
2012-03-11 19:49:21 +04:00
}
2012-03-18 02:41:10 +04:00
2012-05-09 19:40:59 +04:00
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 = OCP\DB :: prepare ( $sql );
$result = $stmt -> execute ( array ( OCP\USER :: getUser (), $path )) -> fetchRow ();
return $result [ 'size' ];
}
2011-12-08 23:04:56 +04:00
}