X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=frontaccounting.php;h=3324d6bb4bdcd14b978305979626d659b296863c;hb=e4312a1db83482b016235c12f8b784e469fbaeb5;hp=ebc533df3fb162fa05467b6b593f162e0176b03f;hpb=4d5e7f226ff4816a67fe29bf5f0ed11acbcbd33b;p=fa-stable.git diff --git a/frontaccounting.php b/frontaccounting.php index ebc533df..3324d6bb 100644 --- a/frontaccounting.php +++ b/frontaccounting.php @@ -1,25 +1,33 @@ . + See the License here . ***********************************************************************/ - 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"); +if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_to_root'])) + die("Restricted access"); + 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'); + + foreach ($installed_extensions as $ext) + { + if (@($ext['active'] && isset($ext['tabs']))) // supressed warnings before 2.2 upgrade + foreach($ext['tabs'] as $tab) { + include_once($path_to_root.'/'.$ext['path'].'/'.$tab['url']); + } + } class front_accounting { @@ -30,13 +38,15 @@ // GUI var $menu; //var $renderer; + function front_accounting() { //$this->renderer =& new renderer(); } - function add_application($app) - { - $this->applications[$app->id] = &$app; + function add_application(&$app) + { + if ($app->enabled) // skip inactive modules + $this->applications[$app->id] = &$app; } function get_application($id) { @@ -55,7 +65,9 @@ function display() { global $path_to_root; - include($path_to_root . "/themes/".user_theme()."/renderer.php"); + + include_once($path_to_root . "/themes/".user_theme()."/renderer.php"); + $this->init(); $rend = new renderer(); $rend->wa_header(); @@ -63,10 +75,12 @@ $rend->display_applications($this); //$rend->menu_footer($this->menu); $rend->wa_footer(); + $this->renderer =& $rend; } function init() { - global $installed_extensions, $applications; + global $installed_extensions, $path_to_root; + $this->menu = new menu(_("Main Menu")); $this->menu->add_item(_("Main Menu"), "index.php"); $this->menu->add_item(_("Logout"), "/account/access/logout.php"); @@ -77,17 +91,26 @@ $this->add_application(new manufacturing_app()); $this->add_application(new dimensions_app()); $this->add_application(new general_ledger_app()); - if (count($installed_extensions) > 0) + + // Do not use global array directly here, or you suffer + // from buggy php behaviour (unexpected loop break + // because of same var usage in class constructor). + $extensions = $installed_extensions; + foreach ($extensions as $ext) { - foreach ($installed_extensions as $ext) - { - include_once("applications/".$ext['app_file']); - $class = $ext['name']."_app"; - $this->add_application(new $class()); + if (@($ext['active'] && isset($ext['tabs']))) { // supressed warnings before 2.2 upgrade + $_SESSION['get_text']->add_domain($_SESSION['language']->code, + $ext['path']."/lang"); + foreach($ext['tabs'] as $tab) { + $class = $tab['tab_id']."_app"; + if (class_exists($class)) + $this->add_application(new $class()); + } } - } - - $this->add_application(new setup_app()); } + $_SESSION['get_text']->add_domain($_SESSION['language']->code, + $path_to_root."/lang", $_SESSION['language']->version); + $this->add_application(new setup_app()); + } } ?> \ No newline at end of file