X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fhooks.inc;h=716b6d9348ea8951e511aab530573ab3975df99c;hb=04955b71e59a4abf396b92e0298891582bf32768;hp=c279b4afc4371ded9621aa6548884168a729d8bc;hpb=46c5f7a65a7659a44ae8254c63152074363d3987;p=fa-stable.git diff --git a/includes/hooks.inc b/includes/hooks.inc index c279b4af..716b6d93 100644 --- a/includes/hooks.inc +++ b/includes/hooks.inc @@ -66,24 +66,33 @@ class hooks { // // Install additional tabs provided by extension // - function install_tabs($app) { -// set_ext_domain('modules/example'); // set text domain for gettext + function install_tabs($app) + { // $app->add_application(new example_class); // add menu tab defined by example_class -// set_ext_domain(); } // // Install additonal menu options provided by extension // - function install_options($app) { + function install_options($app) + { // global $path_to_root; -// set_ext_domain('modules/example'); +// // switch($app->id) { // case 'orders': // $app->add_rapp_function( 0, _("&Example option"), // $path_to_root.'/modules/example/example.php?', 'SA_OPEN'); // } -// set_ext_domain(); } + + function install_access() + { +// $security_areas['SA_EXAMPLE'] = array(SS_EXAMPLE|100, _("Example security area.")); +// +// $security_sections = array(SS_EXAMPLE => _("Example module implementation")); +// +// return array($security_areas, $security_sections); + } + // // Price in words. $doc_type is set to document type and can be used to suppress // price in words printing for selected document types. @@ -164,19 +173,12 @@ class hooks { return true; } } -// -// include all extensions hook files. -// -foreach ($installed_extensions as $ext) -{ - if (file_exists($path_to_root.'/'.$ext['path'].'/hooks.php')) - include_once($path_to_root.'/'.$ext['path'].'/hooks.php'); -} /* Installs hooks provided by extension modules */ -function install_hooks() { +function install_hooks() +{ global $path_to_root, $Hooks, $installed_extensions; $Hooks = array(); @@ -202,7 +204,8 @@ function install_hooks() { Non active hooks are not included in $Hooks array, so we can use special function to activate. */ -function activate_hooks($ext, $comp) { +function activate_hooks($ext, $comp) +{ global $Hooks; $hooks = @$Hooks[$ext]; @@ -221,7 +224,8 @@ function activate_hooks($ext, $comp) { /* Calls hook $method defined in extension $ext (if any) */ -function hook_invoke($ext, $method, &$data, $opts=null) { +function hook_invoke($ext, $method, &$data, $opts=null) +{ global $Hooks; @@ -237,11 +241,12 @@ function hook_invoke($ext, $method, &$data, $opts=null) { /* Calls hook $methods defined in all extensions (if any) */ -function hook_invoke_all($method, &$data, $opts=null) { +function hook_invoke_all($method, &$data, $opts=null) +{ global $Hooks; - $result = array(); + $return = array(); foreach($Hooks as $ext => $hook) if (method_exists($hook, $method)) { set_ext_domain('modules/'.$ext); @@ -253,12 +258,13 @@ function hook_invoke_all($method, &$data, $opts=null) { } } set_ext_domain(); - return $result; + return $return; } /* Returns first non-null result returned from hook. */ -function hook_invoke_first($method, &$data, $opts=null) { +function hook_invoke_first($method, &$data, $opts=null) +{ global $Hooks; @@ -279,7 +285,8 @@ function hook_invoke_first($method, &$data, $opts=null) { extensions installed later. */ -function hook_invoke_last($method, &$data, $opts=null) { +function hook_invoke_last($method, &$data, $opts=null) +{ global $Hooks; @@ -367,3 +374,17 @@ function hook_price_in_words($amount, $document) { return hook_invoke_last('price_in_words', $amount, $document); } +// +// Session handling hook. This is special case of hook class which have to be run before session is started. +// If fa_session_manager class is defined in any installed extension, this class provides session handling +// for application, otherwise standard php session handling is used. +// +function hook_session_start($company) +{ + if (class_exists('fa_session_manager')) { + global $SessionManager; + $SessionManager = new fa_session_manager($company); + return $SessionManager->installed; + } + return false; +}