function handle_delete($id) { global $path_to_root; $extensions = get_company_extensions(); $ext = $extensions[$id]; if ($ext['version'] != '-') { if (!uninstall_package($ext['package'])) { return false; } } else { @(include_once $path_to_root . '/' . $ext['path'] . '/hooks.php'); $hooks_class = 'hooks_' . $ext['package']; if (class_exists($hooks_class)) { $hooks = new $hooks_class(); $hooks->uninstall_extension(false); } } unset($extensions[$id]); if (update_extensions($extensions)) { display_notification(_("Selected extension has been successfully deleted")); } return true; }
include_once $path_to_root . "/includes/session.inc"; include_once $path_to_root . "/includes/packages.inc"; if ($use_popup_windows) { $js = get_js_open_window(900, 500); } page(_($help_context = "Install Charts of Accounts"), false, false, '', $js); include_once $path_to_root . "/includes/date_functions.inc"; include_once $path_to_root . "/admin/db/company_db.inc"; include_once $path_to_root . "/admin/db/maintenance_db.inc"; include_once $path_to_root . "/includes/ui.inc"; //--------------------------------------------------------------------------------------------- if ($id = find_submit('Delete', false)) { $extensions = get_company_extensions(); if ($extensions[$id]['type'] == 'chart' && uninstall_package($extensions[$id]['package'])) { unset($extensions[$id]); if (update_extensions($extensions)) { display_notification(_("Selected chart has been successfully deleted")); meta_forward($_SERVER['PHP_SELF']); } } } if ($id = find_submit('Update', false)) { install_extension($id); } //--------------------------------------------------------------------------------------------- start_form(true); div_start('ext_tbl'); start_table(TABLESTYLE); $th = array(_("Chart"), _("Installed"), _("Available"), _("Encoding"), "", ""); table_header($th); $k = 0;
// select COA subpage_title(_('Charts of Accounts Selection')); display_coas(); submit_center_first('back', _('<< Back')); submit_center_last('install_coas', _('Continue >>')); break; case '5': if (!isset($_POST['name'])) { foreach ($_SESSION['inst_set'] as $name => $val) { $_POST[$name] = $val; } set_focus('name'); } if (!isset($installed_extensions)) { $installed_extensions = array(); update_extensions($installed_extensions); } subpage_title(_('Company Settings')); start_table(TABLESTYLE); text_row_ex(_("Company Name:"), 'name', 30); text_row_ex(_("Admin Login:"******"Admin Password:"******"Reenter Password:"******"Select Chart of Accounts:"), 'coa'); languages_list_row(_("Select Default Language:"), 'lang'); end_table(1); submit_center_first('back', _('<< Back')); submit_center_last('set_admin', _('Continue >>')); break; case '6': // final screen
function fix_extensions() { global $path_to_root, $next_extension_id, $installed_languages; $lang_chd = false; foreach ($installed_languages as $i => $lang) { if (!isset($lang['path'])) { $code = $lang['code']; $installed_languages[$i]['path'] = 'lang/' . $code; $installed_languages[$i]['package'] = $code; $lang_chd = true; } } if ($lang_chd) { write_lang(); } $installed_extensions = get_company_extensions(); if (!isset($next_extension_id)) { $next_extension_id = 1; } $new_exts = array(); /* Old extension modules are uninstalled - they need manual porting after heavy changes in extension system in FA2.3 foreach($installed_extensions as $i => $ext) { if (isset($ext['title'])) // old type entry { if ($ext['type'] == 'module') { $new['type'] = 'extension'; $new['tabs'][] = array( 'url' => $ext['filename'], 'access' => isset($ext['access']) ? $ext['access'] : 'SA_OPEN', 'tab_id' => $ext['tab'], 'title' => $ext['title'] ); $new['path'] = $ext['path']; } else // plugin { $new['type'] = 'extension'; $new['tabs'] = array(); $new['path'] = 'modules/'.$ext['path']; $new['entries'][] = array( 'url' => $ext['filename'], 'access' => isset($ext['access']) ? $ext['access'] : 'SA_OPEN', 'tab_id' => $ext['tab'], 'title' => $ext['title'] ); } if (isset($ext['acc_file'])) $new['acc_file'] = $ext['acc_file']; $new['name'] = $ext['name']; $new['package'] = $new['package'] = ''; $new['active'] = 1; $new_exts[$i] = $new; } } */ // Preserve non-standard themes $path = $path_to_root . '/themes/'; $themes = array(); $themedir = opendir($path); while (false !== ($fname = readdir($themedir))) { if ($fname != '.' && $fname != '..' && $fname != 'CVS' && is_dir($path . $fname) && !in_array($fname, array('aqua', 'cool', 'default'))) { foreach ($installed_extensions as $ext) { if ($ext['path'] == 'themes/' . $fname) { // skip if theme is already listed continue 2; } } $new_exts[$next_extension_id++] = array('name' => 'Theme ' . ucwords($fname), 'package' => $fname, 'type' => 'theme', 'active' => true, 'path' => 'themes/' . $fname); } } closedir($themedir); if (count($new_exts)) { return update_extensions($new_exts); } else { return true; } }