X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Finst_module.php;h=6c974ddb4bda02234902550237a7e75365b122e1;hb=13fae1ba1d78cff66e326a006be2f538dd404248;hp=886ecc91a628f6823879e92a96f172e5dc772f83;hpb=43ad91751a494b2572eb64441248aa3a87f0141e;p=fa-stable.git diff --git a/admin/inst_module.php b/admin/inst_module.php index 886ecc91..6c974ddb 100644 --- a/admin/inst_module.php +++ b/admin/inst_module.php @@ -42,8 +42,18 @@ function local_extension($id) 'active' => false ); - if (file_exists($path_to_root.'/modules/'.clean_file_name($id).'/hooks.php')) { - include_once($path_to_root.'/modules/'.clean_file_name($id).'/hooks.php'); + $local_module_path = $path_to_root.'/modules/'.clean_file_name($id); + $local_config_file = $local_module_path.'/_init/config'; + $local_hook_file = $local_module_path.'/hooks.php'; + + if (file_exists($local_config_file)) { + $ctrl = get_control_file($local_config_file); + if (key_exists('Name', $ctrl)) $exts[$next_extension_id-1]['name'] = $ctrl['Name']; + if (key_exists('Version', $ctrl)) $exts[$next_extension_id-1]['version'] = $ctrl['Version']; + } + if (file_exists($local_hook_file)) { + include_once($local_hook_file); + } $hooks_class = 'hooks_'.$id; if (class_exists($hooks_class, false)) { @@ -123,7 +133,7 @@ function display_extensions($mods) label_cell($entries); label_cell($id === null ? _("None") : - ($available && $installed ? $installed : _("Unknown"))); + (($installed && ($installed != '-' || $installed != '')) ? $installed : _("Unknown"))); label_cell($available ? $available : _("Unknown")); if (!$available && $ext['type'] == 'extension') {// third-party plugin @@ -212,6 +222,12 @@ if (get_post('Refresh')) { foreach($exts as $i => $ext) { if ($ext['package'] && ($ext['active'] ^ check_value('Active'.$i))) { + if (check_value('Active'.$i) && !check_src_ext_version($ext['version'])) + { + display_warning(sprintf(_("Package '%s' is incompatible with current application version and cannot be activated.\n") + . _("Check Install/Activate page for newer package version."), $ext['name'])); + continue; + } $activated = activate_hooks($ext['package'], $comp, !$ext['active']); // change active state if ($activated !== null)