X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=frontaccounting.php;h=d3662cd7f293619bb2a591189cea94b9b4f1fad9;hb=70c2dbcf463a5d500d15b8510c7f45e527a7fa53;hp=409186c12d9f73cea4f1b1e895324a628b14c4c8;hpb=bda174fa43e903aa40c5a56371e3c853645ded8c;p=fa-stable.git diff --git a/frontaccounting.php b/frontaccounting.php index 409186c1..d3662cd7 100644 --- a/frontaccounting.php +++ b/frontaccounting.php @@ -1,17 +1,35 @@ . +***********************************************************************/ +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'); - class front_accounting + 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 { var $user; var $settings; @@ -19,40 +37,50 @@ var $selected_application; // GUI var $menu; - var $renderer; - function front_accounting() - { - $this->renderer = new renderer(); - } - function add_application($app) - { - $this->applications[$app->id] = &$app; + //var $renderer; + + function front_accounting() + { + //$this->renderer =& new renderer(); + } + function add_application(&$app) + { + if ($app->enabled) // skip inactive modules + $this->applications[$app->id] = &$app; } - function get_application($id) + function get_application($id) { if (isset($this->applications[$id])) return $this->applications[$id]; return null; } - function get_selected_application() - { - if (isset($this->selected_application)) + function get_selected_application() + { + if (isset($this->selected_application)) return $this->applications[$this->selected_application]; foreach ($this->applications as $application) return $application; return null; - } - function display() - { - $this->init(); - $this->renderer->wa_header(); - $this->renderer->menu_header($this->menu); - $this->renderer->display_applications($this); - $this->renderer->menu_footer($this->menu); - $this->renderer->wa_footer(); - } - function init() - { + } + function display() + { + global $path_to_root; + + include_once($path_to_root . "/themes/".user_theme()."/renderer.php"); + + $this->init(); + $rend = new renderer(); + $rend->wa_header(); + //$rend->menu_header($this->menu); + $rend->display_applications($this); + //$rend->menu_footer($this->menu); + $rend->wa_footer(); + $this->renderer =& $rend; + } + function init() + { + 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"); @@ -63,7 +91,24 @@ $this->add_application(new manufacturing_app()); $this->add_application(new dimensions_app()); $this->add_application(new general_ledger_app()); + + // 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) + { + if (@($ext['active'] && isset($ext['tabs']))) { // supressed warnings before 2.2 upgrade + set_ext_domain($ext['path']); + foreach($ext['tabs'] as $tab) { + $class = $tab['tab_id']."_app"; + if (class_exists($class)) + $this->add_application(new $class()); + } + } + } + set_ext_domain(); $this->add_application(new setup_app()); - } + } } ?> \ No newline at end of file