Application startup code cleaup.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 22 Feb 2009 10:49:21 +0000 (10:49 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 22 Feb 2009 10:49:21 +0000 (10:49 +0000)
14 files changed:
applications/customers.php
applications/dimensions.php
applications/generalledger.php
applications/inventory.php
applications/manufacturing.php
applications/setup.php
applications/suppliers.php
frontaccounting.php
includes/lang/language.php
includes/session.inc
index.php
themes/aqua/renderer.php
themes/cool/renderer.php
themes/default/renderer.php

index 5dc0881c456ee13efe1057c74f76a83333a31a93..96d1f81286bf6fe6cb8cd71868c4b84739412464 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class customers_app extends application 
        {
                function customers_app() 
index f4dace29603086197c6cb89441548ee22ce7fef7..f23715bef01a179fbfe7e1ecb3a01a574af74aac 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class dimensions_app extends application
        {
                function dimensions_app()
index e690825259814b2809091c5ae3fc66f4bdfc14a4..9cadfe626472f8714836e75a88a0cd14c84201a0 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class general_ledger_app extends application 
        {
                function general_ledger_app() 
index 43e403879fee86f29bd6ca9c765821eeaeb27c9c..9ef37bd0aa1633cf2d7078942fd784bed15b8577 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class inventory_app extends application 
        {
                function inventory_app() 
index 01ea6e7a08b7608f9f77b2c909f8ee7937e91056..c4244a379312101d3671ff876fabea7c028aa93e 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class manufacturing_app extends application
        {
                function manufacturing_app()
index a36e44e17461f25f0552fb0668e703c4cd9e7ac8..801d05300c36d3dcf20a4bb6743da2755c72353e 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class setup_app extends application
        {
                function setup_app()
index 8aacea962fe9e203777c93597c0ed0ebb14345e5..7058716e107b9b3e2fdc4635a59a4567986c5871 100644 (file)
@@ -9,7 +9,6 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once("./modules/installed_modules.php");
        class suppliers_app extends application 
        {
                function suppliers_app() 
index 0f4c98d71d54b5ba443298840cb5c1ef18ee64ee..246d8dc402171c7675aed3998451c4c81ba63311 100644 (file)
@@ -9,17 +9,16 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       include_once('applications/application.php');
-       include_once('applications/customers.php');
-       include_once('applications/suppliers.php');
-       include_once('applications/inventory.php');
-       include_once('applications/manufacturing.php');
-       include_once('applications/dimensions.php');
-       include_once('applications/generalledger.php');
-       include_once('applications/setup.php');
-       include_once('installed_extensions.php');
-       $path_to_root=".";
-       include_once($path_to_root . "/includes/session.inc");
+       include_once($path_to_root . '/applications/application.php');
+       include_once($path_to_root . '/applications/customers.php');
+       include_once($path_to_root . '/applications/suppliers.php');
+       include_once($path_to_root . '/applications/inventory.php');
+       include_once($path_to_root . '/applications/manufacturing.php');
+       include_once($path_to_root . '/applications/dimensions.php');
+       include_once($path_to_root . '/applications/generalledger.php');
+       include_once($path_to_root . '/applications/setup.php');
+       include_once($path_to_root . '/installed_extensions.php');
+       include_once($path_to_root . '/modules/installed_modules.php');
 
        class front_accounting
                {
index 50a88dfcb563c2f3972df447d778bd587b0d2154..62866f0b0279564036e144e42a07576351652d18 100644 (file)
@@ -56,7 +56,6 @@ class language
                        $locale = $path_to_root . "/lang/" . $_SESSION['language']->code . "/locale.inc";
                        // check id file exists only once for session
                        $_SESSION['language']->is_locale_file = file_exists($locale);
-                   reload_page("");
                }
        }
 
@@ -102,39 +101,6 @@ function has_locale($fun=null)
        return false;
 }
 
-session_name('FrontAccounting'.user_company());
-session_start();
-// this is to fix the "back-do-you-want-to-refresh" issue - thanx PHPFreaks
-header("Cache-control: private");
-
-// Page Initialisation
-if (!isset($_SESSION['languages'])) 
-{
-       language::load_languages();
-}
-
-$lang = $_SESSION['language'];
-
-// get_text support
-get_text::init();
-get_text::set_language($lang->code, $lang->encoding);
-//get_text::add_domain("wa", $path_to_root . "/lang");
-get_text::add_domain($lang->code, $path_to_root . "/lang");
-// Unnecessary for ajax calls. 
-// Due to bug in php 4.3.10 for this version set globally in php.ini
-ini_set('default_charset', $_SESSION['language']->encoding);
-
-if (!function_exists("_")) 
-{
-       function _($text) 
-       {
-               $retVal = get_text::gettext($text);
-               if ($retVal == "")
-                       return $text;
-               return $retVal;
-       }
-}
-
 function _set($key,$value) 
 {
        get_text::set_var($key,$value);
@@ -160,6 +126,14 @@ function reload_page($msg)
        $Ajax->redirect($_SERVER['PHP_SELF']);
 }
 
-
-
+if (!function_exists("_")) 
+{
+       function _($text) 
+       {
+               $retVal = get_text::gettext($text);
+               if ($retVal == "")
+                       return $text;
+               return $retVal;
+       }
+}
 ?>
\ No newline at end of file
index d3d6689ee9f87548a2be1c007d63a9473653cb9f..4a67da7aa964d5e5f68e941dff95a9ee355eaded 100644 (file)
 <?php
 /**********************************************************************
-    Copyright (C) FrontAccounting, LLC.
-       Released under the terms of the GNU General Public License, GPL, 
-       as published by the Free Software Foundation, either version 3 
+       Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL,
+       as published by the Free Software Foundation, either version 3
        of the License, or (at your option) any later version.
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
-    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+       This program is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+       See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-       function output_html($text)
-       {
-         global $before_box, $Ajax, $messages;
-               // Fatal errors are not send to error_handler, 
-               // so we must check the output
-         if ($text && preg_match('/\bFatal error(<.*?>)?:(.*)/i', $text, $m)) {
-               $Ajax->aCommands = array();  // Don't update page via ajax on errors
+function output_html($text)
+{
+       global $before_box, $Ajax, $messages;
+       // Fatal errors are not send to error_handler,
+       // so we must check the output
+       if ($text && preg_match('/\bFatal error(<.*?>)?:(.*)/i', $text, $m)) {
+               $Ajax->aCommands = array();  // Don't update page via ajax on errors
                $text = preg_replace('/\bFatal error(<.*?>)?:(.*)/i','', $text);
                $messages[] = array(E_ERROR, $m[2], null, null);
-         }
-         $Ajax->run();
-         return  in_ajax() ? fmt_errors() : ($before_box.fmt_errors().$text);
        }
-
-       if (!isset($path_to_root))
+       $Ajax->run();
+       return  in_ajax() ? fmt_errors() : ($before_box.fmt_errors().$text);
+}
+//----------------------------------------------------------------------------------------
+
+function kill_login()
+{
+       session_unset();
+       session_destroy();
+}
+//----------------------------------------------------------------------------------------
+
+function login_fail()
+{
+       header("HTTP/1.1 401 Authorization Required");
+       echo "<center><br><br><font size='5' color='red'><b>" . _("Incorrect Password") . "<b></font><br><br>";
+       echo "<b>" . _("The user and password combination is not valid for the system.") . "<b><br><br>";
+
+       echo _("If you are not an authorized user, please contact your system administrator to obtain an account to enable you to use the system.");
+       echo "<br><a href='javascript:history.go(-1)'>" . _("Back") . "</a>";
+       echo "</center>";
+
+       kill_login();
+       die();
+}
+
+//----------------------------------------------------------------------------------------
+
+function check_page_security($page_security)
+{
+       if (!$_SESSION["wa_current_user"]->check_user_access())
        {
-               $path_to_root = ".";
+               echo "<br><br><br><center>";
+               echo "<b>" . _("Security settings have not been defined for your user account.");
+               echo "<br>" . _("Please contact your system administrator.") . "</b>";
+
+               kill_login();
+               exit;
        }
 
-    include_once($path_to_root . "/includes/current_user.inc");
+       if (!$_SESSION["wa_current_user"]->can_access_page($page_security))
+       {
+               page(_("Access denied"));
+               echo "<center><br><br><br><b>";
+               echo _("The security settings on your account do not permit you to access this function");
+               echo "</b>";
+               echo "<br><br><br><br></center>";
+               end_page();
+               //kill_login();
+               exit;
+       }
+}
+
+//-----------------------------------------------------------------------------
+//     Removing magic quotes from nested arrays/variables
+//
+function strip_quotes($data)
+{
+       if(get_magic_quotes_gpc()) {
+               if(is_array($data)) {
+                       foreach($data as $k => $v) {
+                               $data[$k] = strip_quotes($data[$k]);
+                       }
+               } else
+                       return stripslashes($data);
+       }
+       return $data;
+}
 
-/*
-       // Make sure this directory exists and is writable!
-       $session_save_path = dirname(__FILE__).'/tmp/';
-*/
+//============================================================================
+if (!isset($path_to_root))
+{
+       $path_to_root = ".";
+}
 
-       $session_save_path = session_save_path();
-       if (strpos($session_save_path, ";") !== false)
-               $session_save_path = substr($session_save_path, strpos($session_save_path, ";") + 1);
+// Prevent register_globals vulnerability
+if (isset($_GET['path_to_root']) || isset($_POST['path_to_root']))
+       die("Restricted access");
 
-       if (isset($session_save_path))
-       {
-               session_save_path($session_save_path);
-               unset($session_save_path);
-       }
-       if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_to_root']))
-               die("Restricted access");
-       include_once($path_to_root . "/includes/lang/language.php");
-       include_once($path_to_root . "/config_db.php");
-       include_once($path_to_root . "/config.php");
-       include_once($path_to_root . "/includes/ajax.inc");
-       $Ajax =& new Ajax();
+include_once($path_to_root . "/frontaccounting.php");
+include_once($path_to_root . "/includes/current_user.inc");
+include_once($path_to_root . "/includes/lang/language.php");
+include_once($path_to_root . "/config_db.php");
+include_once($path_to_root . "/includes/ajax.inc");
 
-       include_once($path_to_root . "/includes/main.inc");
+/*
+       Make sure this directory exists and is writable!
+//     $session_save_path = dirname(__FILE__).'/../tmp/';
+*/
 
-    //----------------------------------------------------------------------------------------
+session_name('FrontAccounting');
+session_start();
+// this is to fix the "back-do-you-want-to-refresh" issue - thanx PHPFreaks
+header("Cache-control: private");
 
-       function kill_login()
-       {
-        session_unset();
-               session_destroy();
-       }
+// Page Initialisation
+if (!isset($_SESSION['languages'])) 
+{
+       language::load_languages();
+}
 
-       //----------------------------------------------------------------------------------------
+$lang = $_SESSION['language'];
 
-       function login_fail()
-       {
-        echo "<center><br><br><font size='5' color='red'><b>" . _("Incorrect Password") . "<b></font><br><br>";
-        echo "<b>" . _("The user and password combination is not valid for the system.") . "<b><br><br>";
+// get_text support
+get_text::init();
+get_text::set_language($lang->code, $lang->encoding);
+//get_text::add_domain("wa", $path_to_root . "/lang");
+get_text::add_domain($lang->code, $path_to_root . "/lang");
 
-        echo _("If you are not an authorized user, please contact your system administrator to obtain an account to enable you to use the system.");
-               echo "<br><a href='javascript:history.go(-1)'>" . _("Back") . "</a>";
-        echo "</center>";
+// Necessary for ajax calls. Due to bug in php 4.3.10 for this 
+// version set globally in php.ini
+ini_set('default_charset', $_SESSION['language']->encoding);
 
-        kill_login();
-        die();
-       }
+include_once($path_to_root . "/config.php");
 
-       //----------------------------------------------------------------------------------------
+$Ajax =& new Ajax();
 
-       function check_page_security($page_security)
-       {
-               if (!$_SESSION["wa_current_user"]->check_user_access())
-               {
-                       echo "<br><br><br><center>";
-                       echo "<b>" . _("Security settings have not been defined for your user account.");
-                       echo "<br>" . _("Please contact your system administrator.") . "</b>";
+include_once($path_to_root . "/includes/main.inc");
 
-                       kill_login();
-                       exit;
-               }
+include_once($path_to_root . "/includes/ui/ui_msgs.inc");
 
-               if (!$_SESSION["wa_current_user"]->can_access_page($page_security))
-               {
-                       page(_("Access denied"));
-                       echo "<center><br><br><br><b>";
-                       echo _("The security settings on your account do not permit you to access this function");
-                       echo "</b>";
-                       echo "<br><br><br><br></center>";
-                       //echo '<script type="text/javascript">';
-                       //echo 'alert("' . _("The security settings on your account do not permit you to access this function") . '");';
-                       //echo 'history.go(-1)';
-                       //echo '</script>'
-                       end_page();
-                       //kill_login();
-                       exit;
-               }
-       }
+// intercept all output to destroy it in case of ajax call
+register_shutdown_function('ob_end_flush');
+ob_start('output_html',0);
 
-       //-----------------------------------------------------------------------------
-       //      Removing magic quotes from nested arrays/variables
-       //
-       function strip_quotes($data)
-       {
-               if(get_magic_quotes_gpc()) {
-                       if(is_array($data)) {
-                               foreach($data as $k => $v) {
-                                       $data[$k] = strip_quotes($data[$k]);
-                               }
-                       } else
-                               return stripslashes($data);
-               }
-               return $data;
-       }
+// colect all error msgs
+set_error_handler('error_handler' /*, errtypes */);
 
+if (!isset($_SESSION["wa_current_user"]))
+       $_SESSION["wa_current_user"] = new current_user();
 
-       //----------------------------------------------------------------------------------------
-       if (!isset($_SESSION["wa_current_user"]) ||
-               (isset($_SESSION["wa_current_user"]) && !$_SESSION["wa_current_user"]->logged_in()))
+if (!$_SESSION["wa_current_user"]->logged_in())
+{
+       // Show login screen
+       if (!isset($_POST["user_name_entry_field"]) or $_POST["user_name_entry_field"] == "")
        {
-
-               $_SESSION["wa_current_user"] = new current_user();
-
-        // Show login screen
-        if (!isset($_POST["user_name_entry_field"]) or $_POST["user_name_entry_field"] == "")
-        {
-               include($path_to_root . "/access/login.php");
-                       $Ajax->redirect($path_to_root . "/access/login.php");
-            exit;
-        }
-       }
-       include_once($path_to_root . "/includes/ui/ui_msgs.inc");
-       // intercept all output to destroy it in case of ajax call
-       register_shutdown_function('ob_end_flush');
-       ob_start('output_html',0);
-       // colect all error msgs
-       set_error_handler('error_handler' /*, errtypes */);
-
-       if (isset($_POST["user_name_entry_field"]))
-       {
+               include($path_to_root . "/access/login.php");
+               $Ajax->redirect($path_to_root . "/access/login.php");
+               exit;
+       } else {
                $succeed = $_SESSION["wa_current_user"]->login($_POST["company_login_name"],
                        $_POST["user_name_entry_field"],
                        md5($_POST["password"]));
                        // Incorrect password
                        login_fail();
                }
-       }
+               $lang = $_SESSION['language'];
+               get_text::set_language($lang->code, $lang->encoding);
+       }
+}
+
 
-    // Run with debugging messages for the system administrator(s) but not anyone else
-    /*if (in_array(15, $security_groups[$_SESSION["AccessLevel"]])) {
-        $debug = 1;
-    } else {
-        $debug = 0;
-    }*/
+// Run with debugging messages for the system administrator(s) but not anyone else
+/*if (in_array(15, $security_groups[$_SESSION["AccessLevel"]])) {
+       $debug = 1;
+} else {
+       $debug = 0;
+}*/
 
-       //----------------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------------
 
-       check_page_security($page_security);
+check_page_security($page_security);
 
 // POST vars cleanup needed for direct reuse.
 // We quote all values later with db_escape() before db update.
index 4df1f106702af53341c64ec7d8d42a53595f2820..5074e17457e882afdd1b3445179686e031a4b8f8 100644 (file)
--- a/index.php
+++ b/index.php
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
        $path_to_root=".";
-       
        $page_security = 1;
        ini_set('xdebug.auto_trace',1);
-       include_once("frontaccounting.php");
        include_once("includes/session.inc");
+
        if (!isset($_SESSION["App"]))
                $_SESSION["App"] = new front_accounting();
        $app = &$_SESSION["App"];
        if (isset($_GET['application']))
                $app->selected_application = $_GET['application'];
+
        $app->display();
        context_reset();
 ?>
\ No newline at end of file
index bf51fb558380ddd40698e45c2a50eafb96b9d5ae..48fd487ae32fe490aa802b1ee8ba7c80b74797c3 100644 (file)
@@ -23,7 +23,7 @@
 
                function menu_header($title, $no_menu, $is_index)
                {
-                       global $path_to_root, $applications, $help_base_url, $db_connections;
+                       global $path_to_root, $help_base_url, $db_connections;
                        // you can owerride the table styles from config.php here, if you want.
                        //global $table_style, $table_style2;
                        //$table_style  = "cellpadding=3 border=1 bordercolor='#8cacbb' style='border-collapse: collapse'";
                        echo "<td class='quick_menu'>\n";
                        if (!$no_menu)
                        {
+                               $applications = $_SESSION['App']->applications;
                                $local_path_to_root = $path_to_root;
                                $sel_app = $_SESSION['sel_app'];
                                echo "<table cellpadding=0 cellspacing=0 width='100%'><tr><td>";
                                echo "<div class=tabs>";
-                               foreach($applications as $app => $name)
+                               foreach($applications as $app)
                                {
-                                       $acc = access_string($name);
-                                       echo "<a ".($sel_app == $app ? "class='selected' " : "").
-                                       "href='$local_path_to_root/index.php?application=".$app.
+                                       $acc = access_string($app->name);
+                                       echo "<a ".($sel_app == $app->id ? "class='selected' " : "").
+                                       "href='$local_path_to_root/index.php?application=".$app->id.
                                                SID ."'$acc[1]>" .$acc[0] . "</a>";
                                }
                                echo "</div>";
index bf51fb558380ddd40698e45c2a50eafb96b9d5ae..5d1bbd7025e30cf953fc13e9e99af1bc4b95e28d 100644 (file)
@@ -23,7 +23,7 @@
 
                function menu_header($title, $no_menu, $is_index)
                {
-                       global $path_to_root, $applications, $help_base_url, $db_connections;
+                       global $path_to_root, $help_base_url, $db_connections;
                        // you can owerride the table styles from config.php here, if you want.
                        //global $table_style, $table_style2;
                        //$table_style  = "cellpadding=3 border=1 bordercolor='#8cacbb' style='border-collapse: collapse'";
@@ -40,6 +40,7 @@
                        echo "<td class='quick_menu'>\n";
                        if (!$no_menu)
                        {
+                               $applications = $_SESSION['App']->applications;
                                $local_path_to_root = $path_to_root;
                                $sel_app = $_SESSION['sel_app'];
                                echo "<table cellpadding=0 cellspacing=0 width='100%'><tr><td>";
index fe53066313bfd8a3a736f437f1c5b6272e708afa..e3e58605486c246b56bcdbe8fb5f1f17c34b95f0 100644 (file)
@@ -23,7 +23,8 @@
 
                function menu_header($title, $no_menu, $is_index)
                {
-                       global $path_to_root, $applications, $help_base_url, $db_connections;
+                       global $path_to_root, $help_base_url, $db_connections;
+                       
                        // you can owerride the table styles from config.php here, if you want.
                        //global $table_style, $table_style2;
                        //$table_style  = "cellpadding=3 border=1 bordercolor='#8cacbb' style='border-collapse: collapse'";
                        echo "<td class='quick_menu'>\n";
                        if (!$no_menu)
                        {
+                               $applications = $_SESSION['App']->applications;
                                $local_path_to_root = $path_to_root;
                                $sel_app = $_SESSION['sel_app'];
                                echo "<table cellpadding=0 cellspacing=0 width='100%'><tr><td>";
                                echo "<div class=tabs>";
-                               foreach($applications as $app => $name)
+                               foreach($applications as $app)
                                {
-                                       $acc = access_string($name);
-                                       echo "<a ".($sel_app == $app ? "class='selected' " : "").
-                                       "href='$local_path_to_root/index.php?application=".$app.
+                                       $acc = access_string($app->name);
+                                       echo "<a ".($sel_app == $app->id ? "class='selected' " : "").
+                                       "href='$local_path_to_root/index.php?application=".$app->id.
                                                SID ."'$acc[1]>" .$acc[0] . "</a>";
                                }
                                echo "</div>";