'files_repo_installed', 'value' => 1, ]; db_process_sql_insert('tconfig', $values); } } } function pandora_files_repo_uninstall() { global $config; switch ($config['dbtype']) { case 'mysql': db_process_sql('DROP TABLE `tfiles_repo_group`'); db_process_sql('DROP TABLE `tfiles_repo`'); db_process_sql( 'DELETE FROM `tconfig` WHERE `token` LIKE "files_repo_%"' ); break; case 'postgresql': db_process_sql('DROP TABLE "tfiles_repo_group"'); db_process_sql('DROP TABLE "tfiles_repo"'); db_process_sql( 'DELETE FROM "tconfig" WHERE "token" LIKE \'files_repo_%\'' ); break; case 'oracle': db_process_sql('DROP TRIGGER "tfiles_repo_group_inc"'); db_process_sql('DROP SEQUENCE "tfiles_repo_group_s"'); db_process_sql('DROP TABLE "tfiles_repo_group"'); db_process_sql('DROP TRIGGER "tfiles_repo_inc"'); db_process_sql('DROP SEQUENCE "tfiles_repo_s"'); db_process_sql('DROP TABLE "tfiles_repo"'); db_process_sql( 'DELETE FROM tconfig WHERE token LIKE \'files_repo_%\'' ); break; } if (!empty($config['attachment_store'])) { delete_dir($config['attachment_store'].'/files_repo'); } } function pandora_files_repo_godmode() { global $config; if (!isset($config['files_repo_installed']) || !$config['files_repo_installed']) { ui_print_error_message(__('Extension not installed')); } // ACL Check check_login(); if (! check_acl($config['id_user'], 0, 'PM')) { db_pandora_audit('ACL Violation', 'Trying to access to Files repository'); include 'general/noaccess.php'; return; } // Header tabs. $godmode['text'] = ''.html_print_image('images/setup.png', true, ['title' => __('Administration view'), 'class' => 'invert_filter']).''; $godmode['godmode'] = 1; $godmode['active'] = 1; $operation['text'] = ''.html_print_image('images/eye_show.png', true, ['title' => __('Operation view'), 'class' => 'invert_filter']).''; $operation['operation'] = 1; $onheader = [ 'godmode' => $godmode, 'operation' => $operation, ]; // Header. ui_print_page_header(__('Files repository manager'), 'images/extensions.png', false, '', true, $onheader); $full_extensions_dir = $config['homedir'].'/'.EXTENSIONS_DIR.'/'; include_once $full_extensions_dir.'files_repo/functions_files_repo.php'; // Directory files_repo check. if (!files_repo_check_directory(true)) { return; } $server_content_length = 0; if (isset($_SERVER['CONTENT_LENGTH'])) { $server_content_length = $_SERVER['CONTENT_LENGTH']; } // Check for an anoying error that causes the $_POST and $_FILES arrays. // were empty if the file is larger than the post_max_size. if (intval($server_content_length) > 0 && empty($_POST)) { ui_print_error_message(__('The file exceeds the maximum size')); } // GET and POST parameters. $file_id = (int) get_parameter('file_id'); $add_file = (bool) get_parameter('add_file'); $update_file = (bool) get_parameter('update_file'); $delete_file = (bool) get_parameter('delete'); // File add or update. if ($add_file || ($update_file && $file_id > 0)) { $groups = get_parameter('groups', []); $public = (bool) get_parameter('public'); $description = io_safe_output((string) get_parameter('description')); if (mb_strlen($description, 'UTF-8') > 200) { $description = mb_substr($description, 0, 200, 'UTF-8'); } $description = io_safe_input($description); if ($add_file) { $result = files_repo_add_file('upfile', $description, $groups, $public); } else if ($update_file) { $result = files_repo_update_file($file_id, $description, $groups, $public); $file_id = 0; } if ($result['status'] == false) { ui_print_error_message($result['message']); } } // File delete. if ($delete_file && $file_id > 0) { $result = files_repo_delete_file($file_id); if ($result !== -1) { ui_print_result_message($result, __('Successfully deleted'), __('Could not be deleted')); } $file_id = 0; } // FORM. include $full_extensions_dir.'files_repo/files_repo_form.php'; if (!$file_id) { // LIST. $manage = true; include $full_extensions_dir.'files_repo/files_repo_list.php'; } } function pandora_files_repo_operation() { global $config; // Header tabs. $onheader = []; if (check_acl($config['id_user'], 0, 'PM')) { $godmode['text'] = ''.html_print_image('images/setup.png', true, ['title' => __('Administration view'), 'class' => 'invert_filter']).''; $godmode['godmode'] = 1; $operation['text'] = ''.html_print_image('images/eye_show.png', true, ['title' => __('Operation view'), 'class' => 'invert_filter']).''; $operation['operation'] = 1; $operation['active'] = 1; $onheader = [ 'godmode' => $godmode, 'operation' => $operation, ]; } // Header. ui_print_page_header(__('Files repository'), 'images/extensions.png', false, '', false, $onheader); $full_extensions_dir = $config['homedir'].'/'.EXTENSIONS_DIR.'/'; include_once $full_extensions_dir.'files_repo/functions_files_repo.php'; // Directory files_repo check. if (!files_repo_check_directory(true)) { return; } // LIST. $full_extensions_dir = $config['homedir'].'/'.EXTENSIONS_DIR.'/'; include $full_extensions_dir.'files_repo/files_repo_list.php'; } extensions_add_operation_menu_option(__('Files repository'), null, null, 'v1r1'); extensions_add_main_function('pandora_files_repo_operation'); extensions_add_godmode_menu_option(__('Files repository manager'), 'PM', null, null, 'v1r1'); extensions_add_godmode_function('pandora_files_repo_godmode'); pandora_files_repo_install();