Bug 4817: g/l account inquiry can timeout due to slow sql. @Braath Waate.
[fa-stable.git] / applications / application.php
index efa11f23febe0ae42dd89812a238497999db4e75..c9f8e943a791e4ddc6113209aeed3e471903b1bf 100644 (file)
-<?php\r
-\r
-       class menu_item \r
-       {\r
-               var $label;\r
-               var $link;\r
-               \r
-               function menu_item($label, $link) \r
-               {\r
-                       $this->label = $label;\r
-                       $this->link = $link;\r
-               }\r
-       }\r
-\r
-       class menu \r
-       {\r
-               var $title;\r
-               var $items;\r
-               \r
-               function menu($title) \r
-               {\r
-                       $this->title = $title;\r
-                       $this->items = array();\r
-               }\r
-               \r
-               function add_item($label, $link) \r
-               {\r
-                       $item = new menu_item($label,$link);\r
-                       array_push($this->items,$item);\r
-                       return $item;\r
-               }\r
-               \r
-       }\r
-\r
-       class app_function \r
-       {\r
-               var $label;\r
-               var $link;\r
-               var $access;\r
-               \r
-               function app_function($label,$link,$access=1) \r
-               {\r
-                       $this->label = $label;\r
-                       $this->link = $link;\r
-                       $this->access = $access;\r
-               }\r
-       }\r
-\r
-       class module \r
-       {\r
-               var $name;\r
-               var $icon;\r
-               var $lappfunctions;\r
-               var $rappfunctions;\r
-               \r
-               function module($name,$icon = null) \r
-               {\r
-                       $this->name = $name;\r
-                       $this->icon = $icon;\r
-                       $this->lappfunctions = array();\r
-                       $this->rappfunctions = array();\r
-               }\r
-               \r
-               function add_lapp_function($label,$link="",$access=1) \r
-               {\r
-                       $appfunction = new app_function($label,$link,$access);\r
-                       //array_push($this->lappfunctions,$appfunction);\r
-                       $this->lappfunctions[] = $appfunction;\r
-                       return $appfunction;\r
-               }\r
-\r
-               function add_rapp_function($label,$link="",$access=1) \r
-               {\r
-                       $appfunction = new app_function($label,$link,$access);\r
-                       //array_push($this->rappfunctions,$appfunction);\r
-                       $this->rappfunctions[] = $appfunction;\r
-                       return $appfunction;\r
-               }\r
-               \r
-               \r
-       }\r
-\r
-       class application \r
-       {\r
-               var $id;\r
-               var $name;\r
-               var $modules;\r
-               var $enabled;\r
-               \r
-               function application($id, $name, $enabled=true) \r
-               {\r
-                       $this->id = $id;\r
-                       $this->name = $name;\r
-                       $this->enables = $enabled;\r
-                       $this->modules = array();\r
-               }\r
-               \r
-               function add_module($name, $icon = null) \r
-               {\r
-                       $module = new module($name,$icon);\r
-                       //array_push($this->modules,$module);\r
-                       $this->modules[] = $module;\r
-                       return $module;\r
-               }\r
-               \r
-               function add_lapp_function($level, $label,$link="",$access=1) \r
-               {\r
-                       $this->modules[$level]->lappfunctions[] = new app_function($label, $link, $access);\r
-               }       \r
-                       \r
-               function add_rapp_function($level, $label,$link="",$access=1) \r
-               {\r
-                       $this->modules[$level]->rappfunctions[] = new app_function($label, $link, $access);\r
-               }       \r
-       }\r
-\r
-\r
-?>
\ No newline at end of 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 
+       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>.
+***********************************************************************/
+
+define('MENU_ENTRY', 'menu_entry');
+define('MENU_TRANSACTION', 'menu_transaction');
+define('MENU_INQUIRY', 'menu_inquiry');
+define('MENU_REPORT', 'menu_report');
+define('MENU_MAINTENANCE', 'menu_maintenance');
+define('MENU_UPDATE', 'menu_update');
+define('MENU_SETTINGS', 'menu_settings');
+define('MENU_SYSTEM', 'menu_system');
+
+    class menu_item
+       {
+               var $label;
+               var $link;
+               
+               function __construct($label, $link) 
+               {
+                       $this->label = $label;
+                       $this->link = $link;
+               }
+       }
+
+       class menu 
+       {
+               var $title;
+               var $items;
+               
+               function __construct($title) 
+               {
+                       $this->title = $title;
+                       $this->items = array();
+               }
+               
+               function add_item($label, $link) 
+               {
+                       $item = new menu_item($label,$link);
+                       array_push($this->items,$item);
+                       return $item;
+               }
+               
+       }
+
+       class app_function 
+       {
+               var $label;
+               var $link;
+               var $access;
+        var $category;
+               
+               function __construct($label,$link,$access='SA_OPEN',$category='')
+               {
+                       $this->label = $label;
+                       $this->link = $link;
+                       $this->access = $access;
+            $this->category = $category;
+               }
+       }
+
+       class module 
+       {
+               var $name;
+               var $icon;
+               var $lappfunctions;
+               var $rappfunctions;
+               
+               function __construct($name,$icon = null) 
+               {
+                       $this->name = $name;
+                       $this->icon = $icon;
+                       $this->lappfunctions = array();
+                       $this->rappfunctions = array();
+               }
+               
+               function add_lapp_function($label,$link="",$access='SA_OPEN',$category='')
+               {
+                       $appfunction = new app_function($label,$link,$access,$category);
+                       $this->lappfunctions[] = $appfunction;
+                       return $appfunction;
+               }
+
+               function add_rapp_function($label,$link="",$access='SA_OPEN',$category='')
+               {
+                       $appfunction = new app_function($label,$link,$access,$category);
+                       $this->rappfunctions[] = $appfunction;
+                       return $appfunction;
+               }
+               
+               
+       }
+
+       class application 
+       {
+               var $id;
+               var $name;
+               var $help_context;
+               var $modules;
+               var $enabled;
+               
+               function __construct($id, $name, $enabled=true) 
+               {
+                       $this->id = $id;
+                       $this->name = $name;
+                       $this->enabled = $enabled;
+                       $this->modules = array();
+               }
+               
+               function add_module($name, $icon = null) 
+               {
+                       $module = new module($name,$icon);
+                       $this->modules[] = $module;
+                       return $module;
+               }
+               
+               function add_lapp_function($level, $label,$link="",$access='SA_OPEN',$category='')
+               {
+                       $this->modules[$level]->lappfunctions[] = new app_function($label, $link, $access, $category);
+               }
+               
+               function add_rapp_function($level, $label,$link="",$access='SA_OPEN',$category='')
+               {
+                       $this->modules[$level]->rappfunctions[] = new app_function($label, $link, $access, $category);
+               }
+               
+               function add_extensions()
+               {
+                       hook_invoke_all('install_options', $this);
+               }
+               //
+               // Helper returning link to report class added by extension module.
+               //
+               function report_class_url($class)
+               {
+                       return "reporting/reports_main.php?Class=".$class;
+               }
+       }
+
+