- global $path_to_root, $db_connections, $selected_id, $next_extension_id;
-
- $extensions = get_company_extensions();
- if (!check_data($selected_id, $extensions))
- return false;
- $id = $selected_id==-1 ? $next_extension_id : $selected_id;
-
- if ($selected_id != -1 && $extensions[$id]['type'] != 'extension'
- || (isset($extensions[$id]['tabs']) && count($extensions[$id]['tabs']))) {
- display_error(_('Module installation support is not implemented.'));
- return;
- }
-
- $extensions[$id]['name'] = $_POST['name'];
- $extensions[$id]['package'] = '';
- $extensions[$id]['version'] = '';
- $extensions[$id]['active'] = check_value('active');
- $entry = $selected_id == -1 ? array() : $extensions[$id]['entries'][0];
-
- $entry['tab_id'] = $_POST['tab'];
- $entry['title'] = $_POST['title'];
- $entry['section'] = 2; // menu section aka module
-
- // Only simple plugin type extensions can be installed manually.
- $extensions[$id]['type'] = 'extension';
- $directory = $path_to_root . "/modules/" . $_POST['path'];
- if (!file_exists($directory))
- {
- mkdir($directory);
- }
- if (is_uploaded_file($_FILES['uploadfile']['tmp_name']))
- {
- $entry['url'] = '/modules/'.$_POST['path'].'/'.$_FILES['uploadfile']['name'];
- $file1 = $_FILES['uploadfile']['tmp_name'];
- $file2 = $directory . "/".$_FILES['uploadfile']['name'];
- if (file_exists($file2))
- unlink($file2);
- move_uploaded_file($file1, $file2);
- }
- else
- $entry['url'] = '/modules/'.$_POST['path'].'/'.get_post('filename');
-
- if (is_uploaded_file($_FILES['uploadfile2']['tmp_name']))
- {
- $file1 = $_FILES['uploadfile2']['tmp_name'];
- $db_name = $_SESSION["wa_current_user"]->company;
- db_import($file1, $db_connections[$db_name]);
- }
-
- if (is_uploaded_file($_FILES['uploadfile3']['tmp_name']))
- {
- $extensions[$id]['acc_file'] = '/modules/'.$_POST['path'].'/'.$_FILES['uploadfile3']['name'];
- $file1 = $_FILES['uploadfile3']['tmp_name'];
- $file2 = $directory . "/".$_FILES['uploadfile3']['name'];
- if (file_exists($file2))
- unlink($file2);
- move_uploaded_file($file1, $file2);
- }
- else
- $extensions[$id]['acc_file'] = '/modules/'.$_POST['path'].'/'.get_post('acc_file');
-
- // security area guess for plugins
- $exttext = file_get_contents($path_to_root.$entry['url']);
- $area = 'SA_OPEN';
- if (preg_match('/.*\$page_security\s*=\s*[\'"]([^\'"]*)/', $exttext, $match)) {
- $area = trim($match[1]);