// return array($security_areas, $security_sections);
}
+ //
+ // Invoked for all modules before page header is displayed
+ //
+ function pre_header($fun_args)
+ {
+ }
+ //
+ // Invoked for all modules before page footer is displayed
+ //
+ function pre_footer($fun_args)
+ {
+ }
+
//
// Price in words. $doc_type is set to document type and can be used to suppress
// price in words printing for selected document types.
function price_in_words($amount, $doc_type)
{
}
-
//
// Exchange rate currency $curr as on date $date.
// Keep in mind FA has internally implemented 3 exrate providers
return null;
}
+ // External authentication
+ // If used should return true after successfull athentication, false otherwise.
+ function authenticate($login, $password)
+ {
+ return null;
+ }
// Generic function called at the end of Tax Report (report 709)
// Can be used e.g. for special database updates on every report printing
// or to print special tax report footer
global $Hooks;
- $result = array();
- foreach($Hooks as $ext => $hook)
- if (method_exists($hook, $method)) {
- set_ext_domain('modules/'.$ext);
- $result = $hook->$method($data, $opts);
- if (isset($result) && is_array($result)) {
- $return = array_merge_recursive($return, $result);
- } else if (isset($result)) {
- $return[] = $result;
- }
- }
- set_ext_domain();
- return $result;
+ $return = array();
+ if (isset($Hooks))
+ {
+ foreach($Hooks as $ext => $hook)
+ if (method_exists($hook, $method)) {
+ set_ext_domain('modules/'.$ext);
+ $result = $hook->$method($data, $opts);
+ if (isset($result) && is_array($result)) {
+ $return = array_merge_recursive($return, $result);
+ } else if (isset($result)) {
+ $return[] = $result;
+ }
+ set_ext_domain();
+ }
+ }
+ return $return;
}
/*
Returns first non-null result returned from hook.
if (method_exists($hook, $method)) {
set_ext_domain('modules/'.$ext);
$result = $hook->$method($data, $opts);
+ set_ext_domain();
if (isset($result))
break;
}
}
- set_ext_domain();
return $result;
}
/*
- Returns result of last hook installed. Helps implement hooks overriding by
+ Returns last non-null result returned from modules method. Helps implement hooks overriding by
extensions installed later.
-
*/
function hook_invoke_last($method, &$data, $opts=null)
{
global $Hooks;
- $found = false;
- foreach($Hooks as $ext => $hook) {
+ $result = null;
+ $Reverse = array_reverse($Hooks);
+ foreach($Reverse as $ext => $hook) {
if (method_exists($hook, $method)) {
- $found = $ext;
+ set_ext_domain('modules/'.$ext);
+ $result = $hook->$method($data, $opts);
+ set_ext_domain();
+ if (isset($result))
+ break;
}
}
- $ret = null;
- if ($found) {
- set_ext_domain('modules/'.$found);
- $ret = $Hooks[$found]->$method($data, $opts);
- set_ext_domain();
- }
- return $ret;
+ return $result;
}
//------------------------------------------------------------------------------------------
// Database transaction hooks.
}
return false;
}
+//
+// Third party authentication modules.
+// Returns true after successfull authentication, false otherwise, null if no login hook is defined.
+//
+function hook_authenticate($login, $password)
+{
+ return hook_invoke_last('authenticate', $login, $password);
+}