Changed hook function name from TaxFunction to tax_report_done.
[fa-stable.git] / frontaccounting.php
index 6f3ad3335bd5786fbf0e07ec9db99d6d97912f3e..3324d6bb4bdcd14b978305979626d659b296863c 100644 (file)
@@ -1,14 +1,33 @@
 <?php
-       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');
-       $path_to_root=".";
-       include_once($path_to_root . "/includes/session.inc");
+/**********************************************************************
+    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>.
+***********************************************************************/
+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
                {
                // 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)
                                {
@@ -44,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();
                        $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");
                        $this->add_application(new manufacturing_app());
                        $this->add_application(new dimensions_app());
                        $this->add_application(new general_ledger_app());
-                       $this->add_application(new setup_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
+                                       $_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());
+                                       }
+                               }
                        }
+                       $_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