unset($code, $hook_class);
}
// install hooks provided by active extensions
-// include($path_to_root.'/installed_extensions.php');
foreach($installed_extensions as $ext) {
-// @include($path_to_root.'/'.$ext['path'].'/hooks.php');
$hook_class = 'hooks_'.$ext['package'];
if ($ext['active'] && class_exists($hook_class)) {
$Hooks[$ext['package']] = new $hook_class;
global $Hooks;
+ $ret = null;
if (isset($Hooks[$ext]) && method_exists($Hooks[$ext], $method)) {
- return $Hooks[$ext]->$method($data, $opts);
- } else
- return null;
+ set_ext_domain('modules/'.$ext);
+ $ret = $Hooks[$ext]->$method($data, $opts);
+ set_ext_domain();
+ }
+ return $ret;
}
/*
$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);
$return[] = $result;
}
}
+ set_ext_domain();
return $result;
}
/*
global $Hooks;
+ $result = null;
foreach($Hooks as $ext => $hook) {
if (method_exists($hook, $method)) {
+ set_ext_domain('modules/'.$ext);
$result = $hook->$method($data, $opts);
if (isset($result))
- return $result;
+ break;
}
}
- return null;
+ set_ext_domain();
+ return $result;
}
/*
Returns result of last hook installed. Helps implement hooks overriding by
$found = $ext;
}
}
- return $found ? $Hooks[$found]->$method($data, $opts) : null;
+ $ret = null;
+ if ($found) {
+ set_ext_domain('modules/'.$found);
+ $ret = $Hooks[$found]->$method($data, $opts);
+ set_ext_domain();
+ }
+ return $ret;
}
//------------------------------------------------------------------------------------------
// Database transaction hooks.
function set_ext_domain($path='') {
global $path_to_root;
- $_SESSION['get_text']->add_domain($_SESSION['language']->code,
- $path_to_root . ($path ? '/' : '') .$path.'/lang',
- $path ? '' : $_SESSION['language']->version);
+ $lang_path = $path_to_root . ($path ? '/' : '') .$path.'/lang';
+ // ignore change when extension does not provide translation structure
+ if (file_exists($lang_path))
+ $_SESSION['get_text']->add_domain($_SESSION['language']->code,
+ $lang_path, $path ? '' : $_SESSION['language']->version);
}
?>