Cleanup: various random sql queries found in UI files moved to database interface...
[fa-stable.git] / includes / main.inc
index 98143cf9843626965a97036f555bf0008be2baff..2477a6c0f38bfba618f915960618a827783928b8 100644 (file)
@@ -12,7 +12,6 @@
 include_once($path_to_root . "/includes/db/connect_db.inc");
 
 include_once($path_to_root . "/includes/types.inc");
-include_once($path_to_root . "/includes/systypes.inc");
 include_once($path_to_root . "/includes/references.inc");
 include_once($path_to_root . "/includes/db/comments_db.inc");
 include_once($path_to_root . "/includes/db/sql_functions.inc");
@@ -69,13 +68,34 @@ function cache_js_file($fpath, $text)
 
        if(!$go_debug) $text = js_compress($text);
 
-        $file = fopen($fpath, 'w');
+    $file = force_open($fpath);
        if (!$file) return false;
        if (!fwrite($file, $text)) return false;
        return fclose($file);
 
 }
 
+/*
+       Open file for writing with creration of subfolders if needed.
+*/
+function force_open($fname)
+{
+       $file = pathinfo($fname);
+
+       $path = $fname[0] == '/' ? '/' : '';
+       $tree = explode('/', $file['dirname']);
+       foreach($tree as $level) {
+               $path .= $level;
+               if (!file_exists($path)) {
+                       if (!mkdir($path)) {
+                               return null;
+                       }
+               }
+               $path .= '/';
+       }
+       return fopen($fname, 'w');
+}
+
 function add_js_file($filename) 
 {
          global $js_static;
@@ -261,9 +281,9 @@ function check_write($path)
 {
        if ($path == ''//|| $path == '.' || $path == '..'
        ) return 0;
-       
+
        return is_writable($path) ? (is_dir($path) ? 1 : -1) 
-               : (is_file($path) ? 0 : ($path == '.' ? 0 : check_write(dirname($path))));
+               : (is_file($path) ? 0 : ($path == '.' || $path == '..' ? 0 : check_write(dirname($path))));
 }
 
 /*
@@ -353,6 +373,7 @@ function find_custom_file($rep)
        Changes all not POSIX compatible chars to underscore.
 */
 function clean_file_name($filename) {
+    $filename = str_replace(chr(0), '', $filename);
     return preg_replace('/[^a-zA-Z0-9.\-_]/', '_', $filename);
 }