Browse Source

Added Import:move from Import:server and disabled moveToTemp by default (#151)

Tobias Reich 10 years ago
parent
commit
08fe04c241
1 changed files with 20 additions and 9 deletions
  1. 20 9
      php/modules/Import.php

+ 20 - 9
php/modules/Import.php

@@ -58,11 +58,7 @@ class Import extends Module {
 
 	}
 
-	static function server($albumID = 0, $path) {
-
-		global $database, $plugins, $settings;
-
-		if (!isset($path)) $path = LYCHEE_UPLOADS_IMPORT;
+	static function move($database, $path) {
 
 		# Determine OS type and set move cmd (Windows untested!)
 		$myos = substr(PHP_OS,0,3);
@@ -75,7 +71,7 @@ class Import extends Module {
 		$tmpdirname = md5(time() . rand());
 
 		# Make temporary directory
-	  	if (@mkdir(LYCHEE_DATA . $tmpdirname)===false) {
+		if (@mkdir(LYCHEE_DATA . $tmpdirname)===false) {
 			Log::error($database, __METHOD__, __LINE__, 'Failed to create temporary directory');
 			return false;
 		}
@@ -107,11 +103,26 @@ class Import extends Module {
 			return false;
 		}
 
+		# Set new path
+		$path = LYCHEE_DATA . $tmpdirname;
+
+		return $path;
+
+	}
+
+	static function server($albumID = 0, $path, $useTemp = false) {
+
+		global $database, $plugins, $settings;
+
+		if (!isset($path)) $path = LYCHEE_UPLOADS_IMPORT;
+
+		if ($useTemp===true) $path = Import::move($database, $path);
+
 		$error				= false;
 		$contains['photos']	= false;
 		$contains['albums']	= false;
 
-		$path = LYCHEE_DATA . $tmpdirname;
+		# Get all files
 		$files = glob($path . '/*');
 
 		foreach ($files as $file) {
@@ -149,7 +160,7 @@ class Import extends Module {
 					continue;
 				}
 
-				Import::server($newAlbumID, $file . '/');
+				Import::server($newAlbumID, $file . '/', false);
 
 				$contains['albums'] = true;
 
@@ -158,7 +169,7 @@ class Import extends Module {
 		}
 
 		# Delete tmpdir if import was successful
-		if ($error===false) rmdir(LYCHEE_DATA . $tmpdirname);
+		if ($error===false&&$useTemp===true&&isset($tmpdirname)) rmdir(LYCHEE_DATA . $tmpdirname);
 
 		if ($contains['photos']===false&&$contains['albums']===false)	return 'Warning: Folder empty or no readable files to process!';
 		if ($contains['photos']===false&&$contains['albums']===true)	return 'Notice: Import only contains albums!';