X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fhooks.inc;h=85b7ae93544ada5e3cda343d8464ebee5d692d49;hb=HEAD;hp=d2096c17004362352f2c95020d1fad6f45955396;hpb=43ad91751a494b2572eb64441248aa3a87f0141e;p=fa-stable.git diff --git a/includes/hooks.inc b/includes/hooks.inc index d2096c17..85b7ae93 100644 --- a/includes/hooks.inc +++ b/includes/hooks.inc @@ -20,7 +20,7 @@ // class hooks { var $module_name; // extension module name. - + var $path = null; // // Helper for updating databases with extension scheme // @@ -211,7 +211,6 @@ class hooks { return true; } return array($qoh, 'stockmankobg'); - return array($line_item->qty_dispatched, 'stockmankobg'); } } @@ -219,28 +218,34 @@ class hooks { /* Installs hooks provided by extension modules */ -function install_hooks() +function install_hooks($lang_code=null) { global $path_to_root, $Hooks, $installed_extensions; $Hooks = array(); - // include current language related $Hooks object if locale file exists - $lang_code = clean_file_name($_SESSION['language']->code); + if (!$lang_code) + $lang_code = $_SESSION['language']->code; + $lang_code = clean_file_name($lang_code); + if (file_exists($path_to_root . "/lang/" . $lang_code . "/locale.inc")) { include_once($path_to_root . "/lang/" . $lang_code . "/locale.inc"); - $code = $_SESSION['language']->code; + $code = $lang_code; $hook_class = 'hooks_'.$code; $Hooks[$code] = new $hook_class; + $Hooks[$code]->path = "/lang/" . $lang_code . "/locale.inc"; unset($code, $hook_class); } // install hooks provided by active extensions - foreach($installed_extensions as $ext) { - $hook_class = 'hooks_'.$ext['package']; - if ($ext['active'] && class_exists($hook_class)) { - $Hooks[$ext['package']] = new $hook_class; - } + if (isset($installed_extensions) && !empty($installed_extensions)) { + foreach($installed_extensions as $ext) { + $hook_class = 'hooks_'.$ext['package']; + if ($ext['active'] && class_exists($hook_class)) { + $Hooks[$ext['package']] = new $hook_class; + $Hooks[$ext['package']]->path = $ext['path']; + } + } } } /* @@ -276,7 +281,7 @@ function hook_invoke($ext, $method, &$data, $opts=null) $ret = null; if (isset($Hooks[$ext]) && method_exists($Hooks[$ext], $method)) { - set_ext_domain('modules/'.$ext); + set_ext_domain($Hooks[$ext]->path); $ret = $Hooks[$ext]->$method($data, $opts); set_ext_domain(); } @@ -296,7 +301,7 @@ function hook_invoke_all($method, &$data, $opts=null) { foreach($Hooks as $ext => $hook) if (method_exists($hook, $method)) { - set_ext_domain('modules/'.$ext); + set_ext_domain($hook->path); $result = $hook->$method($data, $opts); if (isset($result) && is_array($result)) { $return = array_merge_recursive($return, $result); @@ -319,7 +324,7 @@ function hook_invoke_first($method, &$data, $opts=null) $result = null; foreach($Hooks as $ext => $hook) { if (method_exists($hook, $method)) { - set_ext_domain('modules/'.$ext); + set_ext_domain($hook->path); $result = $hook->$method($data, $opts); set_ext_domain(); if (isset($result)) @@ -341,7 +346,7 @@ function hook_invoke_last($method, &$data, $opts=null) $Reverse = array_reverse($Hooks); foreach($Reverse as $ext => $hook) { if (method_exists($hook, $method)) { - set_ext_domain('modules/'.$ext); + set_ext_domain($hook->path); $result = $hook->$method($data, $opts); set_ext_domain(); if (isset($result))