changeset 869:2447673c5d04

Back to the original plan.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 26 Nov 2014 13:10:39 +0200
parents 6829da58c17c
children b5176d174bf5
files msite.inc.php
diffstat 1 files changed, 55 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/msite.inc.php	Wed Nov 26 12:46:11 2014 +0200
+++ b/msite.inc.php	Wed Nov 26 13:10:39 2014 +0200
@@ -1050,57 +1050,6 @@
 }
 
 
-//
-// File table entry adding
-//
-function stUpdateOrAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $fileType, $uploaderID)
-{
-  $field = (($type == "preview") ? "preview" : "file")."_id";
-
-  // Compute storage filename
-  $fileName = sprintf("%03d-%s--%s%s.%s",
-    $entry["id"],
-    stFilterPathComponent($entry["author"]),
-    stFilterPathComponent($entry["name"]),
-    ($type == "preview" ? "_preview" : ""),
-    $fileExt);
-
-  if (($fileID = stFetchSQLColumn("SELECT id FROM files WHERE id=".$entry[$field])) !== false)
-  {
-    $sql = stPrepareSQL(
-      "UPDATE files SET filename=%s,origname=%s,filetype=%s,filesize=%d,entry_id=%d,uploader_id=%d,utime=%d ".
-      "WHERE id=".$fileID,
-      $fileName, $origName, $fileType, $fileSize, $entry["id"], $uploaderID, time());
-
-    if (stExecSQL($sql) === false)
-      return stError("Failed to update file entry data.");
-  }
-  else
-  {
-    // Create new file entry
-    $sql = stPrepareSQL(
-      "INSERT INTO files (filename,origname,filetype,filesize,entry_id,uploader_id,utime) ".
-      "VALUES (%s,%s,%s,%d,%d,%d,%d)",
-      $fileName, $origName, $fileType, $fileSize, $entry["id"], $uploaderID, time());
-
-    if (($fileID = stExecSQLInsert($sql)) === false)
-      return stError("Failed to add new ".$type." for entry #".$entry["id"]." '".$origName."'.");
-  }
-
-  // Update entry's reference
-  $sql = stPrepareSQL("UPDATE entries SET ".$field."=%d WHERE id=%d", $fileID, $entry["id"]);
-
-  if (stExecSQL($sql) === false)
-    return stError("Failed to update entry #".$entry["id"]." ".$type." ID ... :S");
-
-  // Return file entry
-  return stFetchSQL("SELECT * FROM files WHERE id=".$fileID);
-}
-
-
-//
-// File upload handling
-//
 function stFileError($userID, $adminMsg, $userMsg)
 {
   stErrorLog($adminMsg);
@@ -1109,6 +1058,60 @@
 }
 
 
+//
+// File table entry adding
+//
+function stAddFileEntry($entry, $type, $origName, $fileSize, $fileExt, $fileType, $uploaderID)
+{
+  $field = (($type == "preview") ? "preview" : "file")."_id";
+
+  // Create new file entry
+  $sql = stPrepareSQL(
+    "INSERT INTO files (origname,filetype,filesize,entry_id,uploader_id,utime) ".
+    "VALUES (%s,%s,%d,%d,%d,%d)",
+    $origName, $fileType, $fileSize, $entry["id"], $uploaderID, time());
+
+  if (($fileID = stExecSQLInsert($sql)) === false)
+    return stFileError($uploaderID,
+      "Failed to add new ".$type." file for entry #".$entry["id"]." '".$origName."'.",
+      "Internal error. Failed to add new file.");
+
+  // Compute storage filename
+  $fileName = sprintf("%03d-%s--%s%s_(%d).%s",
+    $entry["id"],
+    stFilterPathComponent($entry["author"]),
+    stFilterPathComponent($entry["name"]),
+    ($type == "preview" ? "_preview" : ""),
+    $fileID,
+    $fileExt);
+
+  // Update entry with generated filename
+  $sql = stPrepareSQL("UPDATE files SET filename=%s WHERE id=%d", $fileName, $fileID);
+  if (stExecSQL($sql) === false)
+    return stFileError($uploaderID,
+      "Failed to update newly created files entry #".$fileID." with generated filename '".$fileName."'!",
+      "Internal error. Failed to add new file.");
+
+  // Update entry's reference
+  $sql = stPrepareSQL("UPDATE entries SET ".$field."=%d WHERE id=%d", $fileID, $entry["id"]);
+  if (stExecSQL($sql) === false)
+    return stFileError($uploaderID,
+      "Failed to update entry #".$entry["id"]." ".$type." ID!",
+      "Internal error. Failed to add new file.");
+
+  // Return file entry
+  if (($res = stFetchSQL("SELECT * FROM files WHERE id=".$fileID)) === false)
+    return stFileError($uploaderID,
+      "Failed to fetch newly generated files entry #".$fileID,
+      "Internal error. Failed to add new file.");
+
+  return $res;
+}
+
+
+//
+// File upload handling
+//
 function stHandleGenericFileUpload($userID)
 {
   global $errorSet;
@@ -1231,7 +1234,7 @@
   }
 
   // Update current or add new file entry
-  if (($fentry = stUpdateOrAddFileEntry($entry, $uploadType, $orgFilename, $fileSize, $fileExt, $fileInfo["id"], $userID)) === false)
+  if (($fentry = stAddFileEntry($entry, $uploadType, $orgFilename, $fileSize, $fileExt, $fileInfo["id"], $userID)) === false)
     return FALSE;
 
   // Set permissions before moving the file