Gallery: splitout model code
This commit is contained in:
parent
d4546cdf37
commit
eeaf539a44
|
@ -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']));
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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')))));
|
||||
|
||||
?>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|
|
@ -492,7 +492,7 @@ class PDOStatementWrapper{
|
|||
}
|
||||
|
||||
/**
|
||||
* make exucute return the result instead of a bool
|
||||
* make execute return the result instead of a bool
|
||||
*/
|
||||
public function execute($input=array()){
|
||||
$this->lastArguments=$input;
|
||||
|
|
Loading…
Reference in New Issue