--- old/filemanager.module	Thu Apr 20 11:02:08 2006
+++ filemanager.module	Tue Aug 15 14:10:37 2006
@@ -279,7 +279,7 @@
         $private = '1';
     }
     else {
-        $private = '';
+        $private = '0'; // Havran: must be set to 0 for PostgreSQL
     }
 
     // Exit immediately if file is already in the right state
@@ -385,7 +385,7 @@
  * Returns the total size in bytes of all current active files.
  */
 function filemanager_get_size() {
-  $size = db_fetch_object(db_query("SELECT SUM(size) as size FROM {file} WHERE working = 0"));
+  $size = db_fetch_object(db_query("SELECT SUM(size) AS size FROM {file} WHERE working = 0"));
   return $size->size;
 }
 
@@ -425,7 +425,8 @@
   if ($area == '') {
     $area = 'general';
   }
-  $result = db_query("SELECT SUM(size) size, COUNT(1) as filecount FROM {file} WHERE area = '%s'", $area);
+  // Havran AS
+  $result = db_query("SELECT SUM(size) AS size, COUNT(1) AS filecount FROM {file} WHERE area = '%s'", $area);
   $area = db_fetch_object($result);
   $area->sizelimit = variable_get("filemanager_area_limit_" . $area, '-1');
   return $area;
@@ -710,6 +711,25 @@
   return $form;
 }
 
+/**
+ * Handle the submission of the admin/settings form. This is a bit unusual
+ * since the settings form is normally handled automatically, but due to
+ * the deep fileareas->areas array used for the file areas table,
+ * the system_settings_form_submit can't handle all the values without
+ * some pre-processing.
+ */
+function filemanager_settings_form_submit($form_id, $values) {
+	// Flatten the fileareas array into $values
+  foreach ($values['file_areas']['areas'] as $area => $settings) {
+    foreach ($settings as $value_key => $value_array) {
+    	foreach ($value_array as $key => $value) {
+    	  $values[$key] = $value;
+    	}
+    }
+  }
+  system_settings_form_submit($form_id, $values);
+}
+
 function theme_filemanager_fileareas_admin($form) {
   $output = form_render($form['info']);
 
@@ -774,7 +794,8 @@
 function _filemanager_find_directory(&$file) {
     // Find a directory that is not already full and does not contain our files
     $file->directory = 0;
-    $directories = db_query("SELECT directory, count(1) filecount FROM {file} WHERE private = '%s' GROUP BY directory ORDER BY directory ASC", $file->private);
+    // Havran AS
+    $directories = db_query("SELECT directory, count(1) AS filecount FROM {file} WHERE private = '%s' GROUP BY directory ORDER BY directory ASC", $file->private);
 
     // this while loop requires the $directories array to be ordered in ascending order
     while ($directory = db_fetch_object($directories)) {
