summaryrefslogtreecommitdiffstats
path: root/apps/gallery
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2011-12-08 20:04:56 +0100
committerBart Visscher <bartv@thisnet.nl>2011-12-08 20:05:12 +0100
commiteeaf539a4414e3081b6f6652167363a3221a1973 (patch)
tree0616110c205df731c542ea600db369d842a99f9c /apps/gallery
parentd4546cdf37bced97d447b5170202cbd61c39d3be (diff)
downloadnextcloud-server-eeaf539a4414e3081b6f6652167363a3221a1973.tar.gz
nextcloud-server-eeaf539a4414e3081b6f6652167363a3221a1973.zip
Gallery: splitout model code
Diffstat (limited to 'apps/gallery')
-rw-r--r--apps/gallery/ajax/createAlbum.php3
-rw-r--r--apps/gallery/ajax/getAlbums.php6
-rw-r--r--apps/gallery/ajax/getCovers.php16
-rw-r--r--apps/gallery/ajax/scanForAlbums.php3
-rw-r--r--apps/gallery/ajax/thumbnail.php17
-rw-r--r--apps/gallery/appinfo/app.php4
-rw-r--r--apps/gallery/css/styles.css13
-rw-r--r--apps/gallery/index.php7
-rw-r--r--apps/gallery/lib/album.php18
-rw-r--r--apps/gallery/lib/photo.php28
-rw-r--r--apps/gallery/lib/scanner.php (renamed from apps/gallery/lib_scanner.php)22
-rw-r--r--apps/gallery/templates/view_album.php10
12 files changed, 104 insertions, 43 deletions
diff --git a/apps/gallery/ajax/createAlbum.php b/apps/gallery/ajax/createAlbum.php
index 610f761b72a..9413b54718a 100644
--- a/apps/gallery/ajax/createAlbum.php
+++ b/apps/gallery/ajax/createAlbum.php
@@ -3,8 +3,7 @@ require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('gallery');
-$stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_albums ("uid_owner", "album_name") VALUES ("'.OC_User::getUser().'", "'.$_GET['album_name'].'")');
-$stmt->execute(array());
+OC_Gallery_Album::create(OC_User::getUser(), $_GET['album_name']);
OC_JSON::success(array('name' => $_GET['album_name']));
diff --git a/apps/gallery/ajax/getAlbums.php b/apps/gallery/ajax/getAlbums.php
index 38bea74636f..856f29344d7 100644
--- a/apps/gallery/ajax/getAlbums.php
+++ b/apps/gallery/ajax/getAlbums.php
@@ -4,13 +4,11 @@ OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('gallery');
$a = array();
-$stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_albums WHERE `uid_owner` = ?');
-$result = $stmt->execute(array(OC_User::getUser()));
+$result = OC_Gallery_Album::find(OC_User::getUser());
while ($r = $result->fetchRow()) {
$album_name = $r['album_name'];
- $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_photos WHERE `album_id` = ?');
- $tmp_res = $stmt->execute(array($r['album_id']));
+ $tmp_res = OC_Gallery_Photo::find($r['album_id']);
$a[] = array('name' => $album_name, 'numOfItems' => min($tmp_res->numRows(), 10));
}
diff --git a/apps/gallery/ajax/getCovers.php b/apps/gallery/ajax/getCovers.php
index b9c7558a53c..db7c8e9fcde 100644
--- a/apps/gallery/ajax/getCovers.php
+++ b/apps/gallery/ajax/getCovers.php
@@ -18,7 +18,7 @@ function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height, $tgtImg, $
default:
exit();
}
- if(!$myImage) exit();
+ if(!$myImage) exit();
$ratio_orig = $width_orig/$height_orig;
if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
@@ -44,15 +44,19 @@ function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height, $tgtImg, $
$box_size = 200;
$album_name= $_GET['album_name'];
-$stmt = OC_DB::prepare('SELECT `file_path` FROM *PREFIX*gallery_photos,*PREFIX*gallery_albums WHERE *PREFIX*gallery_albums.`uid_owner` = ? AND `album_name` = ? AND *PREFIX*gallery_photos.`album_id` = *PREFIX*gallery_albums.`album_id`');
-$result = $stmt->execute(array(OC_User::getUser(), $album_name));
+$result = OC_Gallery_Photo::findForAlbum(OC_User::getUser(), $album_name);
$numOfItems = min($result->numRows(),10);
-$targetImg = imagecreatetruecolor($numOfItems*$box_size, $box_size);
+if ($numOfItems){
+ $targetImg = imagecreatetruecolor($numOfItems*$box_size, $box_size);
+}
+else{
+ $targetImg = imagecreatetruecolor($box_size, $box_size);
+}
$counter = 0;
while (($i = $result->fetchRow()) && $counter < $numOfItems) {
- $imagePath = OC::$CONFIG_DATADIRECTORY . $i['file_path'];
+ $imagePath = OC_Filesystem::getLocalFile($i['file_path']);
if(file_exists($imagePath))
{
CroppedThumbnail($imagePath, $box_size, $box_size, $targetImg, $counter*$box_size);
@@ -65,7 +69,7 @@ header('Content-Type: image/png');
$offset = 3600 * 24;
// calc the string in GMT not localtime and add the offset
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
-header('Cache-Control: max-age=3600, must-revalidate');
+header('Cache-Control: max-age='.$offset.', must-revalidate');
header('Pragma: public');
imagepng($targetImg);
diff --git a/apps/gallery/ajax/scanForAlbums.php b/apps/gallery/ajax/scanForAlbums.php
index de0b141a367..ff696804b00 100644
--- a/apps/gallery/ajax/scanForAlbums.php
+++ b/apps/gallery/ajax/scanForAlbums.php
@@ -3,9 +3,8 @@
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('gallery');
-require_once('../lib_scanner.php');
-OC_JSON::success(array('albums' => OC_GALLERY_SCANNER::scan('')));
+OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan('')));
//OC_JSON::success(array('albums' => array(array('name' => 'test', 'imagesCount' => 1, 'images' => array('dupa')))));
?>
diff --git a/apps/gallery/ajax/thumbnail.php b/apps/gallery/ajax/thumbnail.php
index a1416452932..d937691fa03 100644
--- a/apps/gallery/ajax/thumbnail.php
+++ b/apps/gallery/ajax/thumbnail.php
@@ -49,12 +49,19 @@ function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height) { //$imgSr
$box_size = 200;
$img = $_GET['img'];
-$tmp = OC::$CONFIG_DATADIRECTORY . $img;
+$imagePath = OC_Filesystem::getLocalFile($img);
-if(file_exists($tmp))
+if(file_exists($imagePath))
{
- header('Content-Type: image/png');
- $image = CroppedThumbnail($tmp, $box_size, $box_size);
+ $image = CroppedThumbnail($imagePath, $box_size, $box_size);
+
+ header('Content-Type: image/png');
+ $offset = 3600 * 24;
+ // calc the string in GMT not localtime and add the offset
+ header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
+ header('Cache-Control: max-age='.$offset.', must-revalidate');
+ header('Pragma: public');
+
imagepng($image);
imagedestroy($image);
-} \ No newline at end of file
+}
diff --git a/apps/gallery/appinfo/app.php b/apps/gallery/appinfo/app.php
index 8f855c470e5..2b1ab857afc 100644
--- a/apps/gallery/appinfo/app.php
+++ b/apps/gallery/appinfo/app.php
@@ -1,4 +1,8 @@
<?php
+OC::$CLASSPATH['OC_Gallery_Album'] = 'apps/gallery/lib/album.php';
+OC::$CLASSPATH['OC_Gallery_Photo'] = 'apps/gallery/lib/photo.php';
+OC::$CLASSPATH['OC_Gallery_Scanner'] = 'apps/gallery/lib/scanner.php';
+
OC_App::register(array(
'order' => 20,
'id' => 'gallery',
diff --git a/apps/gallery/css/styles.css b/apps/gallery/css/styles.css
index 03b179138e6..070effe3a92 100644
--- a/apps/gallery/css/styles.css
+++ b/apps/gallery/css/styles.css
@@ -1,14 +1,22 @@
div#gallery_list {
margin: 90pt 20pt;
}
+div#gallery_list.leftcontent {
+ padding-top: 15px;
+ margin: 0;
+ text-align: center;
+}
div#gallery_album_box {
width: 200px;
text-align: center;
border: 0;
- float: left;
+ display: inline-block;
margin: 5pt;
}
+.leftcontent div#gallery_album_box {
+ margin: 5px;
+}
div#gallery_album_box h1 {
font-size: 12pt;
@@ -21,3 +29,6 @@ div#gallery_album_cover {
border: solid 1px black;
}
+#gallery_images {
+padding:10px 5px;
+}
diff --git a/apps/gallery/index.php b/apps/gallery/index.php
index 87fdafcf13c..2c409089ebe 100644
--- a/apps/gallery/index.php
+++ b/apps/gallery/index.php
@@ -7,8 +7,7 @@ OC_App::setActiveNavigationEntry( 'gallery_index' );
if (!isset($_GET['view'])) {
- $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_albums WHERE uid_owner = ?');
- $result = $stmt->execute(array(OC_User::getUser()));
+ $result = OC_Gallery_Album::find(OC_User::getUser());
$r = array();
while ($row = $result->fetchRow())
@@ -18,9 +17,7 @@ if (!isset($_GET['view'])) {
$tmpl->assign('r', $r);
$tmpl->printPage();
} else {
- $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_photos, *PREFIX*gallery_albums WHERE uid_owner = ? AND album_name = ? AND *PREFIX*gallery_albums.album_id = *PREFIX*gallery_photos.album_id');
-
- $result = $stmt->execute(array(OC_User::getUser(), $_GET['view']));
+ $result = OC_Gallery_Photo::findForAlbum(OC_User::getUser(), $_GET['view']);
$photos = array();
while ($p = $result->fetchRow())
diff --git a/apps/gallery/lib/album.php b/apps/gallery/lib/album.php
new file mode 100644
index 00000000000..6ddfe46de3d
--- /dev/null
+++ b/apps/gallery/lib/album.php
@@ -0,0 +1,18 @@
+<?php
+
+class OC_Gallery_Album{
+ public static function create($owner, $name){
+ $stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_albums (uid_owner, album_name) VALUES (?, ?)');
+ $stmt->execute(array($owner, $name));
+ }
+ public static function find($owner, $name=null){
+ $sql = 'SELECT * FROM *PREFIX*gallery_albums WHERE uid_owner = ?';
+ $args = array($owner);
+ if (!is_null($name)){
+ $sql .= ' AND album_name = ?';
+ $args[] = $name;
+ }
+ $stmt = OC_DB::prepare($sql);
+ return $stmt->execute($args);
+ }
+}
diff --git a/apps/gallery/lib/photo.php b/apps/gallery/lib/photo.php
new file mode 100644
index 00000000000..97d159935f5
--- /dev/null
+++ b/apps/gallery/lib/photo.php
@@ -0,0 +1,28 @@
+<?php
+
+class OC_Gallery_Photo{
+ public static function create($albumId, $img){
+ $stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_photos (album_id, file_path) VALUES (?, ?)');
+ $stmt->execute(array($albumId, $img));
+ }
+ public static function find($albumId, $img=null){
+ $sql = 'SELECT * FROM *PREFIX*gallery_photos WHERE album_id = ?';
+ $args = array($albumId);
+ $args = array($albumId);
+ if (!is_null($img)){
+ $sql .= ' AND file_path = ?';
+ $args[] = $img;
+ }
+ $stmt = OC_DB::prepare($sql);
+ return $stmt->execute($args);
+ }
+ public static function findForAlbum($owner, $album_name){
+ $stmt = OC_DB::prepare('SELECT *'
+ .' FROM *PREFIX*gallery_photos photos,'
+ .' *PREFIX*gallery_albums albums'
+ .' WHERE albums.uid_owner = ?'
+ .' AND albums.album_name = ?'
+ .' AND photos.album_id = albums.album_id');
+ return $stmt->execute(array($owner, $album_name));
+ }
+}
diff --git a/apps/gallery/lib_scanner.php b/apps/gallery/lib/scanner.php
index 1231de3f3c4..1590051c48d 100644
--- a/apps/gallery/lib_scanner.php
+++ b/apps/gallery/lib/scanner.php
@@ -1,9 +1,6 @@
<?php
-require_once('base.php'); // base lib
-
-class OC_GALLERY_SCANNER {
-
+class OC_Gallery_Scanner {
public static function scan($root) {
$albums = array();
self::scanDir($root, $albums);
@@ -24,26 +21,21 @@ class OC_GALLERY_SCANNER {
} elseif (self::isPhoto($path.'/'.$filename)) {
$current_album['images'][] = $filepath;
}
- }
+ }
}
$current_album['imagesCount'] = count($current_album['images']);
$albums[] = $current_album;
- $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_albums WHERE `uid_owner` = ? AND `album_name` = ?');
- $result = $stmt->execute(array(OC_User::getUser(), $current_album['name']));
+ $result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']);
if ($result->numRows() == 0 && count($current_album['images'])) {
- $stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_albums (`uid_owner`, `album_name`) VALUES (?, ?)');
- $stmt->execute(array(OC_User::getUser(), $current_album['name']));
+ OC_Gallery_Album::create(OC_User::getUser(), $current_album['name']);
+ $result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']);
}
- $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_albums WHERE `uid_owner` = ? AND `album_name` = ?');
- $result = $stmt->execute(array(OC_User::getUser(), $current_album['name']));
$albumId = $result->fetchRow();
$albumId = $albumId['album_id'];
foreach ($current_album['images'] as $img) {
- $stmt = OC_DB::prepare('SELECT * FROM *PREFIX*gallery_photos WHERE `album_id` = ? AND `file_path` = ?');
- $result = $stmt->execute(array($albumId, $img));
+ $result = OC_Gallery_Photo::find($albumId, $img);
if ($result->numRows() == 0) {
- $stmt = OC_DB::prepare('INSERT INTO *PREFIX*gallery_photos (`album_id`, `file_path`) VALUES (?, ?)');
- $stmt->execute(array($albumId, $img));
+ OC_Gallery_Photo::create($albumId, $img);
}
}
}
diff --git a/apps/gallery/templates/view_album.php b/apps/gallery/templates/view_album.php
index 230e2a5c21d..ae43e2fc557 100644
--- a/apps/gallery/templates/view_album.php
+++ b/apps/gallery/templates/view_album.php
@@ -1,5 +1,6 @@
<?php
OC_Util::addStyle('gallery', 'styles');
+OC_Util::addScript('gallery', 'albums');
OC_Util::addScript('gallery', 'album_cover');
OC_Util::addScript('files_imageviewer', 'jquery.mousewheel-3.0.4.pack');
OC_Util::addScript('files_imageviewer', 'jquery.fancybox-1.3.4.pack');
@@ -16,13 +17,16 @@ OC_Util::addStyle( 'files_imageviewer', 'jquery.fancybox-1.3.4' );
<div id="controls">
<a href="?"><input type="button" value="Back" /></a><br/>
</div>
-<div id="gallery_list">
+
+<div id="gallery_list" class="leftcontent">
+</div>
+
+<div id="gallery_images" class="rightcontent">
<?php
foreach ($_['photos'] as $a) {
?>
-<a rel="images" href="../../files/ajax/download.php?files=<?php echo $a; ?>"><img src="ajax/thumbnail.php?img=<?php echo $a ?>"></a>
+<a rel="images" href="../../files/download.php?file=<?php echo urlencode($a); ?>"><img src="ajax/thumbnail.php?img=<?php echo urlencode($a) ?>"></a>
<?php
}
?>
-
</div>