All *_list() functions now return html code instead direct display, *_list_cells...
[fa-stable.git] / includes / main.inc
index 943798011d4fe1666f3800a054bbb6b2492f9fa9..fcb8b99ac5ac4c7ce4ac4fbb3fe073e64bba5a01 100644 (file)
@@ -9,81 +9,69 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-    include_once($path_to_root . "/includes/db/connect_db.inc");
+include_once($path_to_root . "/includes/db/connect_db.inc");
 
-    include_once($path_to_root . "/includes/reserved.inc");
-    include_once($path_to_root . "/includes/errors.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/prefs/sysprefs.inc");
-    include_once($path_to_root . "/includes/db/comments_db.inc");
-    include_once($path_to_root . "/includes/db/sql_functions.inc");
+include_once($path_to_root . "/includes/errors.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/prefs/sysprefs.inc");
+include_once($path_to_root . "/includes/db/comments_db.inc");
+include_once($path_to_root . "/includes/db/sql_functions.inc");
+include_once($path_to_root . "/includes/db/audit_trail_db.inc");
+//include_once($path_to_root . "/includes/validation.inc");
 
-    include_once($path_to_root . "/admin/db/users_db.inc");
-    include_once($path_to_root . "/includes/ui/ui_view.inc");
-    include_once($path_to_root . "/includes/ui/ui_controls.inc");
-    include_once($path_to_root . "/installed_extensions.php");
+include_once($path_to_root . "/admin/db/users_db.inc");
+include_once($path_to_root . "/includes/ui/ui_view.inc");
+include_once($path_to_root . "/includes/ui/ui_controls.inc");
        
-    function page($title, $no_menu=false, $is_index=false, $onload="", $js="", $script_only=false)
-    {
-
-       global $path_to_root, $installed_extensions;
+function page($title, $no_menu=false, $is_index=false, $onload="", $js="", $script_only=false)
+{
 
-       $hide_menu = $no_menu;
+       global $path_to_root, $page_security;
 
-               if ($no_menu==false && count($installed_extensions))
-               {
-                       global $applications;
-                       foreach ($installed_extensions as $ext)
-                       {
-                               $s = $applications['system'];
-                               array_pop($applications);
-                               $applications[$ext['name']] = $ext['title'];;
-                               $applications['system'] = $s;
-                       }       
-               }       
 
-       include($path_to_root . "/includes/page/header.inc");
+       $hide_menu = $no_menu;
 
-       page_header($title, $no_menu, $is_index, $onload, $js);
-               error_box();
-               if($script_only) {              
-                       echo '<noscript>';
-                       echo display_heading(_('This page is usable only with javascript enabled browsers.'));
-                       echo '</noscript>';
-                       div_start('_page_body', null, true);
-               } else {
-                       div_start('_page_body'); // whole page content for ajax reloading
-               }
-    }
+       include($path_to_root . "/includes/page/header.inc");
 
-    function end_page($no_menu=false, $is_index=false)
-    {
-       global $path_to_root, $Ajax;
+       page_header($title, $no_menu, $is_index, $onload, $js);
+       check_page_security($page_security);
+//     error_box();
+       if($script_only) {              
+               echo '<noscript>';
+               echo display_heading(_('This page is usable only with javascript enabled browsers.'));
+               echo '</noscript>';
+               div_start('_page_body', null, true);
+       } else {
+               div_start('_page_body'); // whole page content for ajax reloading
+       }
+}
 
+function end_page($no_menu=false, $is_index=false)
+{
+       global $path_to_root, $Ajax;
        $hide_menu = $no_menu;
-
                div_end();      // _page_body section
-       include($path_to_root . "/includes/page/footer.inc");
-
+       include($path_to_root . "/includes/page/footer.inc");
        page_footer($no_menu, $is_index);
-    }
+}
 
-    function flush_dir($path) {
+function flush_dir($path, $wipe = false) 
+{
        $dir = opendir($path);
        while(false !== ($fname = readdir($dir))) {
-               if($fname=='.' || $fname=='..' || $fname=='index.php') continue;
+               if($fname=='.' || $fname=='..' || $fname=='CVS' || (!$wipe && $fname=='index.php')) continue;
                if(is_dir($path.'/'.$fname)) {
-                   flush_dir($path.'/'.$fname);
-                   @rmdir($path.'/'.$fname);
+                   flush_dir($path.'/'.$fname, $wipe);
+                   if ($wipe) @rmdir($path.'/'.$fname);
                } else
                    @unlink($path.'/'.$fname);
-       }
-    }
+       }
+}
 
-    function cache_js_file($fpath, $text) 
-    {
+function cache_js_file($fpath, $text) 
+{
        global $go_debug;
 
        if(!$go_debug) $text = js_compress($text);
        if (!fwrite($file, $text)) return false;
        return fclose($file);
 
-    }
+}
 
-    function add_js_file($filename) 
-    {
+function add_js_file($filename) 
+{
          global $js_static;
 
          $search = array_search($filename, $js_static);
          if ($search === false || $search === null) // php>4.2.0 returns null
                $js_static[] = $filename;       
-    }
+}
 
-    function add_js_ufile($filename) 
-    {
+function add_js_ufile($filename) 
+{
          global $js_userlib;
 
          $search = array_search($filename, $js_userlib);
          if ($search === false || $search === null) // php>4.2.0 returns null
                $js_userlib[] = $filename;
-    }
+}
 
-    function add_js_source($text) 
-    {
+function add_js_source($text) 
+{
          global $js_lib;
          
          $search = array_search($text, $js_lib);
          if ($search === false || $search === null) // php>4.2.0 returns null
                $js_lib[] = $text;
-    }
+}
 
 /**
  * Compresses the Javascript code for more efficient delivery.
@@ -153,10 +141,11 @@ function js_compress($sJS)
                $inNormalComment = false;
        
                //loop through line's characters and take out any literal strings, replace them with ___i___ where i is the index of this string
-               for($j=0;$j<strlen($line);$j++)
+               $len = strlen($line);
+               for($j=0;$j<$len;$j++)
                {
-                       $c = substr($line,$j,1);
-                       $d = substr($line,$j,2);
+                       $c = $line[$j];         // this is _really_ faster than subst
+                       $d = $c.$line[$j+1];
        
                        //look for start of quote
                        if(!$inQuote && !$inComment)
@@ -287,7 +276,7 @@ function array_remove(&$array, $index, $len=1)
        array_splice($array, $index, $len);
 }
 
-function array_replace(&$array, $index, $len, $elements)
+function array_substitute(&$array, $index, $len, $elements)
 {
        array_splice($array, $index, $len);
        array_insert($array, $index, $elements);