diff --git a/data/.gitignore b/data/.gitignore old mode 100644 new mode 100755 diff --git a/docs/md/Installation.md b/docs/md/Installation.md index 50bac52..d79ce7e 100644 --- a/docs/md/Installation.md +++ b/docs/md/Installation.md @@ -16,12 +16,20 @@ To use Lychee without restrictions, we recommend to increase the values of the f upload_max_size = 200M upload_max_filesize = 20M max_file_uploads = 100 + +### Download Lychee + +The easiest way to download Lychee is with git: + + git clone https://github.com/electerious/Lychee.git + +You can also use the [direct download](https://github.com/electerious/Lychee/archive/master.zip). ### Folder permissions -Change the permissions of `uploads/` and `php/` to 777, including all subfolders: +Change the permissions of `uploads/` and `data/` to 777, including all subfolders: - chmod -R 777 uploads/ php/ + chmod -R 777 uploads/ data/ ### Lychee installation diff --git a/php/api.php b/php/api.php index 444f79f..54b5196 100755 --- a/php/api.php +++ b/php/api.php @@ -27,7 +27,7 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) { require('modules/tags.php'); require('modules/misc.php'); - if (file_exists('config.php')) require('config.php'); + if (file_exists('../data/config.php')) require('../data/config.php'); else { /** @@ -55,7 +55,7 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) { // Get Settings $settings = getSettings(); - + // Escape foreach(array_keys($_POST) as $key) $_POST[$key] = mysqli_real_escape_string($database, urldecode($_POST[$key])); foreach(array_keys($_GET) as $key) $_GET[$key] = mysqli_real_escape_string($database, urldecode($_GET[$key])); @@ -64,7 +64,7 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) { if (isset($_POST['albumIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['albumIDs'])!==1) exit('Error: Wrong parameter type for albumIDs!'); if (isset($_POST['photoIDs'])&&preg_match('/^[0-9\,]{1,}$/', $_POST['photoIDs'])!==1) exit('Error: Wrong parameter type for photoIDs!'); if (isset($_POST['albumID'])&&preg_match('/^[0-9sf]{1,}$/', $_POST['albumID'])!==1) exit('Error: Wrong parameter type for albumID!'); - if (isset($_POST['photoID'])&&preg_match('/^[0-9]{14}$/', $_POST['photoID'])!==1) exit('Error: Wrong parameter type for photoID!'); + if (isset($_POST['photoID'])&&preg_match('/^[0-9]{14}$/', $_POST['photoID'])!==1) exit('Error: Wrong parameter type for photoID!'); if (isset($_SESSION['login'])&&$_SESSION['login']==true) { @@ -158,13 +158,13 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) { case 'search': if (isset($_POST['term'])) echo json_encode(search($_POST['term'])); break; - + // Tag Functions - + case 'getTags': if (isset($_POST['photoID'])) echo json_encode(getTags($_POST['photoID'])); break; - + case 'setTags': if (isset($_POST['photoIDs'])&&isset($_POST['tags'])) echo setTags($_POST['photoIDs'], $_POST['tags']); break; diff --git a/php/modules/album.php b/php/modules/album.php index 57d3240..67e3e6b 100755 --- a/php/modules/album.php +++ b/php/modules/album.php @@ -236,54 +236,55 @@ function deleteAlbum($albumIDs) { function getAlbumArchive($albumID) { global $database; - - switch($albumID) { - case 's': - $query = "SELECT * FROM lychee_photos WHERE public = '1';"; - $zipTitle = "Public"; - break; - case 'f': - $query = "SELECT * FROM lychee_photos WHERE star = '1';"; - $zipTitle = "Starred"; - break; - default: - $query = "SELECT * FROM lychee_photos WHERE album = '$albumID';"; - $zipTitle = "Unsorted"; - } - - $result = $database->query($query); - $files = array(); - $i=0; - while($row = $result->fetch_object()) { - $files[$i] = "../uploads/big/".$row->url; - $i++; - } - $result = $database->query("SELECT * FROM lychee_albums WHERE id = '$albumID';"); - $row = $result->fetch_object(); - if ($albumID!=0&&is_numeric($albumID))$zipTitle = $row->title; - $filename = "../uploads/".$zipTitle.".zip"; - - $zip = new ZipArchive(); - - if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) { - return false; - } - - foreach($files AS $zipFile) { - $newFile = explode("/",$zipFile); - $newFile = array_reverse($newFile); - $zip->addFile($zipFile, $zipTitle."/".$newFile[0]); - } - - $zip->close(); - - header("Content-Type: application/zip"); - header("Content-Disposition: attachment; filename=\"$zipTitle.zip\""); - header("Content-Length: ".filesize($filename)); - readfile($filename); - unlink($filename); - - return true; + + switch($albumID) { + case 's': + $query = "SELECT * FROM lychee_photos WHERE public = '1';"; + $zipTitle = "Public"; + break; + case 'f': + $query = "SELECT * FROM lychee_photos WHERE star = '1';"; + $zipTitle = "Starred"; + break; + default: + $query = "SELECT * FROM lychee_photos WHERE album = '$albumID';"; + $zipTitle = "Unsorted"; + } + + $zip = new ZipArchive(); + $result = $database->query($query); + $files = array(); + $i=0; + + while($row = $result->fetch_object()) { + $files[$i] = "../uploads/big/".$row->url; + $i++; + } + + $result = $database->query("SELECT * FROM lychee_albums WHERE id = '$albumID';"); + $row = $result->fetch_object(); + if ($albumID!=0&&is_numeric($albumID)) $zipTitle = $row->title; + $filename = "../data/$zipTitle.zip"; + + if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) { + return false; + } + + foreach($files AS $zipFile) { + $newFile = explode("/",$zipFile); + $newFile = array_reverse($newFile); + $zip->addFile($zipFile, $zipTitle."/".$newFile[0]); + } + + $zip->close(); + + header("Content-Type: application/zip"); + header("Content-Disposition: attachment; filename=\"$zipTitle.zip\""); + header("Content-Length: ".filesize($filename)); + readfile($filename); + unlink($filename); + + return true; } diff --git a/php/modules/db.php b/php/modules/db.php index d0ba1fd..2453996 100755 --- a/php/modules/db.php +++ b/php/modules/db.php @@ -61,6 +61,9 @@ $config = ""; - if (file_put_contents("config.php", $config)===false) return "Warning: Could not create file!"; + if (file_put_contents("../data/config.php", $config)===false) return "Warning: Could not create file!"; else { $_SESSION['login'] = true; diff --git a/php/modules/tags.php b/php/modules/tags.php old mode 100644 new mode 100755 diff --git a/plugins/check.php b/plugins/check.php index 407059d..4ba09dd 100644 --- a/plugins/check.php +++ b/plugins/check.php @@ -16,8 +16,8 @@ header('content-type: text/plain'); $error = ''; // Include -if (!file_exists('../php/config.php')) exit('Error 001: Configuration not found. Please install Lychee first.'); -require('../php/config.php'); +if (!file_exists('../data/config.php')) exit('Error 001: Configuration not found. Please install Lychee first.'); +require('../data/config.php'); require('../php/modules/settings.php'); // Database @@ -54,7 +54,7 @@ if (substr(sprintf('%o', @fileperms('../uploads/big/')), -4)!='0777') $error .= if (substr(sprintf('%o', @fileperms('../uploads/thumb/')), -4)!='0777') $error .= ('Error 501: Wrong permissions for \'uploads/thumb\' (777 required)' . PHP_EOL); if (substr(sprintf('%o', @fileperms('../uploads/import/')), -4)!='0777') $error .= ('Error 502: Wrong permissions for \'uploads/import\' (777 required)' . PHP_EOL); if (substr(sprintf('%o', @fileperms('../uploads/')), -4)!='0777') $error .= ('Error 503: Wrong permissions for \'uploads/\' (777 required)' . PHP_EOL); -if (substr(sprintf('%o', @fileperms('../php/')), -4)!='0777') $error .= ('Error 504: Wrong permissions for \'php/\' (777 required)' . PHP_EOL); +if (substr(sprintf('%o', @fileperms('../data/')), -4)!='0777') $error .= ('Error 504: Wrong permissions for \'data/\' (777 required)' . PHP_EOL); if ($error=='') echo('Lychee is ready. Lets rock!' . PHP_EOL . PHP_EOL); else echo $error; diff --git a/readme.md b/readme.md index 7746c34..20ca641 100644 --- a/readme.md +++ b/readme.md @@ -17,11 +17,11 @@ You can use Lychee right after the installation. Here are some advanced features ### Settings -Sign in and click the gear on the top left corner to change your settings. If you want to edit them manually: MySQL details are stored in `php/config.php`. Other options and settings are stored directly in the database. [Settings »](docs/md/Settings.md) +Sign in and click the gear on the top left corner to change your settings. If you want to edit them manually: MySQL details are stored in `data/config.php`. Other options and settings are stored directly in the database. [Settings »](docs/md/Settings.md) ### Update -1. Replace all files, excluding `uploads/` +1. Replace all files, excluding `uploads/` and `data/` 2. Open Lychee and enter your database details ### FTP Upload diff --git a/view.php b/view.php index fb08e01..62dbf61 100644 --- a/view.php +++ b/view.php @@ -24,7 +24,7 @@ define("LYCHEE", true); - require("php/config.php"); + require("data/config.php"); require("php/modules/db.php"); require("php/modules/misc.php");