From: Bartek Przybylski Date: Wed, 21 Dec 2011 17:35:29 +0000 (+0100) Subject: merged X-Git-Tag: v3.0~79^2~9^2~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3c428671090e2bd3d46d76567a45c2a9e1639127;p=nextcloud-server.git merged --- 3c428671090e2bd3d46d76567a45c2a9e1639127 diff --cc .htaccess index bd2f42d6658,0d334503d07..b181f8b8452 --- a/.htaccess +++ b/.htaccess @@@ -2,11 -2,8 +2,9 @@@ ErrorDocument 404 /core/templates/404.p php_value upload_max_filesize 512M php_value post_max_size 512M +php_value memory_limit 512M SetEnv htaccessWorking true - RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last] - Options -Indexes diff --cc apps/gallery/ajax/getAlbums.php index 98d92c5f31a,856f29344d7..7454b18edab --- a/apps/gallery/ajax/getAlbums.php +++ b/apps/gallery/ajax/getAlbums.php @@@ -9,9 -8,8 +8,9 @@@ $result = OC_Gallery_Album::find(OC_Use 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)); ++ + $a[] = array('name' => $album_name, 'numOfItems' => min($tmp_res->numRows(), 10), 'bgPath' => OC::$WEBROOT.'/data/'.OC_User::getUser().'/gallery/'.$album_name.'.png'); } OC_JSON::success(array('albums'=>$a)); diff --cc apps/gallery/ajax/scanForAlbums.php index bdd591d0422,ff696804b00..f603cbb4971 --- a/apps/gallery/ajax/scanForAlbums.php +++ b/apps/gallery/ajax/scanForAlbums.php @@@ -3,10 -3,8 +3,8 @@@ require_once('../../../lib/base.php'); OC_JSON::checkLoggedIn(); OC_JSON::checkAppEnabled('gallery'); - require_once('../lib_scanner.php'); - OC_GALLERY_SCANNER::cleanUp(); - OC_JSON::success(array('albums' => OC_GALLERY_SCANNER::scan(''))); - //OC_JSON::success(array('albums' => array(array('name' => 'test', 'imagesCount' => 1, 'images' => array('dupa'))))); ++OC_Gallery_Scanner::cleanUp(); + OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan(''))); -//OC_JSON::success(array('albums' => array(array('name' => 'test', 'imagesCount' => 1, 'images' => array('dupa'))))); ?> diff --cc apps/gallery/index.php index cb567e3c8f6,2c409089ebe..0cd795bac01 --- a/apps/gallery/index.php +++ b/apps/gallery/index.php @@@ -5,16 -5,9 +5,15 @@@ OC_Util::checkLoggedIn() OC_Util::checkAppEnabled('gallery'); OC_App::setActiveNavigationEntry( 'gallery_index' ); +if (!file_exists(OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/gallery')) { + mkdir(OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/gallery'); + $f = fopen(OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/gallery/.htaccess', 'w'); + fwrite($f, "allow from all"); + fclose($f); +} 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()) diff --cc apps/gallery/lib/scanner.php index 00000000000,1590051c48d..ef210327966 mode 000000,100644..100644 --- a/apps/gallery/lib/scanner.php +++ b/apps/gallery/lib/scanner.php @@@ -1,0 -1,49 +1,73 @@@ + execute(array()); ++ $stmt = OC_DB::prepare('DELETE FROM *PREFIX*gallery_photos'); ++ $stmt->execute(array()); ++ } ++ + public static function scanDir($path, &$albums) { + $current_album = array('name'=> $path, 'imagesCount' => 0, 'images' => array()); + $current_album['name'] = str_replace('/', '.', str_replace(OC::$CONFIG_DATADIRECTORY, '', $current_album['name'])); + $current_album['name'] = ($current_album['name']==='')?'main':$current_album['name']; + + if ($dh = OC_Filesystem::opendir($path)) { + while (($filename = readdir($dh)) !== false) { + $filepath = $path.'/'.$filename; + if (substr($filename, 0, 1) == '.') continue; + if (OC_Filesystem::is_dir($filepath)) { + self::scanDir($filepath, $albums); + } elseif (self::isPhoto($path.'/'.$filename)) { + $current_album['images'][] = $filepath; + } + } + } + $current_album['imagesCount'] = count($current_album['images']); + $albums[] = $current_album; ++ + $result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']); + if ($result->numRows() == 0 && count($current_album['images'])) { + OC_Gallery_Album::create(OC_User::getUser(), $current_album['name']); + $result = OC_Gallery_Album::find(OC_User::getUser(), $current_album['name']); + } + $albumId = $result->fetchRow(); + $albumId = $albumId['album_id']; + foreach ($current_album['images'] as $img) { + $result = OC_Gallery_Photo::find($albumId, $img); + if ($result->numRows() == 0) { + OC_Gallery_Photo::create($albumId, $img); + } + } ++ if (count($current_album['images'])) { ++ self::createThumbnail($current_album['name'],$current_album['images']); ++ } ++ } ++ ++ public static function createThumbnail($albumName, $files) { ++ $file_count = min(count($files), 10); ++ $thumbnail = imagecreatetruecolor($file_count*200, 200); ++ for ($i = 0; $i < $file_count; $i++) { ++ CroppedThumbnail(OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/files/'.$files[$i], 200, 200, $thumbnail, $i*200); ++ } ++ imagepng($thumbnail, OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/gallery/' . $albumName.'.png'); + } + + public static function isPhoto($filename) { + if (substr(OC_Filesystem::getMimeType($filename), 0, 6) == "image/") + return 1; + return 0; + } + } + ?>