Fixed display issues when different settings were used for various app users (javascr...
[fa-stable.git] / includes / main.inc
index 8ef038ca1f06e63e39959c250889781cebee05f1..018fb2b0cdc9b0869d2418969b231d838518563c 100644 (file)
@@ -69,13 +69,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;