X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Finst_module.php;h=966a4899e9e73f0ff70000c0876dc84a12314503;hb=be38c92bf817200dd5d6f70153dde2826bae6238;hp=71d6f7424200b1634439de6b4fca394bc159a6db;hpb=8ffddf50ffbe93672c769e2cf0501d0f9125e2a0;p=fa-stable.git diff --git a/admin/inst_module.php b/admin/inst_module.php index 71d6f742..966a4899 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)) { @@ -79,17 +89,6 @@ function handle_delete($id) } return true; } -// -// Helper for formating menu tabs/entries to be displayed in extension table -// -function fmt_titles($defs) -{ - if (!$defs) return ''; - foreach($defs as $def) { - $str[] = access_string($def['title'], true); - } - return implode('
', array_values($str)); -} //--------------------------------------------------------------------------------------------- // // Display list of all extensions - installed and available from repository @@ -101,8 +100,7 @@ function display_extensions($mods) div_start('ext_tbl'); start_table(TABLESTYLE); - $th = array(_("Extension"),_("Modules provided"), _("Options provided"), - _("Installed"), _("Available"), "", ""); + $th = array(_("Extension"), _("Installed"), _("Available"), "", ""); table_header($th); $k = 0; @@ -113,17 +111,12 @@ function display_extensions($mods) $installed = @$ext['version']; $id = @$ext['local_id']; - $entries = fmt_titles(@$ext['entries']); - $tabs = fmt_titles(@$ext['tabs']); - alt_table_row_color($k); label_cell($available ? get_package_view_str($pkg_name, $ext['name']) : $ext['name']); - label_cell($tabs); - 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 @@ -164,7 +157,7 @@ function company_extensions($id) { start_table(TABLESTYLE); - $th = array(_("Extension"),_("Modules provided"), _("Options provided"), _("Active")); + $th = array(_("Extension"), _("Version"), _("Path"), _("Active")); $mods = get_company_extensions(); $exts = get_company_extensions($id); @@ -181,15 +174,14 @@ function company_extensions($id) foreach($mods as $i => $mod) { if ($mod['type'] != 'extension') continue; - alt_table_row_color($k); + alt_table_row_color($k); label_cell($mod['name']); - $entries = fmt_titles(@$mod['entries']); - $tabs = fmt_titles(@$mod['tabs']); - label_cell($tabs); - label_cell($entries); + label_cell($mod['version']); + label_cell($mod['path']); check_cells(null, 'Active'.$i, @$mod['active'] ? 1:0, false, false, "align='center'"); + end_row(); } @@ -210,18 +202,16 @@ if (get_post('Refresh')) { $result = true; foreach($exts as $i => $ext) { - if ($ext['package'] && ($ext['active'] ^ check_value('Active'.$i))) { + 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; } - if (!$ext['active']) - $activated = activate_hooks($ext['package'], $comp); - else - $activated = hook_invoke($ext['package'], check_value('Active'.$i) ? - 'activate_extension':'deactivate_extension', $comp, false); + $activated = activate_hooks($ext['package'], $comp, !$ext['active']); // change active state + if ($activated !== null) $result &= $activated; if ($activated || ($activated === null))