fix: billing order flow, steam_workshop lang key, workshop module install queries
- order.php: replace foreach((array)$mysqli_result) with proper fetch_assoc() loop - order.php: fix hidden service_id field to use $_REQUEST instead of $_POST - order.php: add safe error messages and error_log() on failed service lookup - lang/English/global.php: add OGP_LANG_steam_workshop to fix _steam_workshop_ raw key - steam_workshop/module.php: replace unusable $module_db_create heredoc with proper $install_queries[0] array so tables are created during module install - timestamp.txt: updated Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/70fa0082-93ad-4a4d-a1b3-ea6afa77ee80 Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
This commit is contained in:
parent
d06ac4fb63
commit
9550cd32b4
4 changed files with 95 additions and 85 deletions
|
|
@ -28,60 +28,62 @@ $db_version = 1;
|
|||
$module_required = TRUE;
|
||||
$module_menus = array();
|
||||
|
||||
// Database schema migration: create the three Workshop tables when not present.
|
||||
// Called by the panel module installer when db_version increments.
|
||||
$module_db_create = <<<'SQL'
|
||||
CREATE TABLE IF NOT EXISTS `OGP_DB_PREFIXworkshop_game_profiles` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`game_key` VARCHAR(100) NOT NULL,
|
||||
`game_name` VARCHAR(255) NOT NULL,
|
||||
`workshop_app_id` VARCHAR(32) NOT NULL,
|
||||
`supported_os` SET('linux','windows') NOT NULL DEFAULT 'linux',
|
||||
`cache_path_template` TEXT NOT NULL,
|
||||
`install_path_template` TEXT NOT NULL,
|
||||
`folder_name_template` VARCHAR(255) NOT NULL DEFAULT '@{mod_id}',
|
||||
`copy_method` ENUM('rsync','robocopy','custom_script') NOT NULL DEFAULT 'rsync',
|
||||
`install_script` TEXT NULL,
|
||||
`config_file_template` TEXT NULL,
|
||||
`launch_param_template` TEXT NULL,
|
||||
`requires_restart` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`enabled` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_game_key` (`game_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
// Database schema: create the three Workshop tables when the module is installed.
|
||||
// $install_queries[0] is run during initial install (from db_version 0 to 1).
|
||||
// Each table uses IF NOT EXISTS so re-running is safe.
|
||||
$install_queries = array();
|
||||
$install_queries[0] = array(
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."workshop_game_profiles` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`game_key` VARCHAR(100) NOT NULL,
|
||||
`game_name` VARCHAR(255) NOT NULL,
|
||||
`workshop_app_id` VARCHAR(32) NOT NULL,
|
||||
`supported_os` SET('linux','windows') NOT NULL DEFAULT 'linux',
|
||||
`cache_path_template` TEXT NOT NULL,
|
||||
`install_path_template` TEXT NOT NULL,
|
||||
`folder_name_template` VARCHAR(255) NOT NULL DEFAULT '@{mod_id}',
|
||||
`copy_method` ENUM('rsync','robocopy','custom_script') NOT NULL DEFAULT 'rsync',
|
||||
`install_script` TEXT NULL,
|
||||
`config_file_template` TEXT NULL,
|
||||
`launch_param_template` TEXT NULL,
|
||||
`requires_restart` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`enabled` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_game_key` (`game_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci",
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `OGP_DB_PREFIXworkshop_cache` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`agent_id` INT NOT NULL,
|
||||
`os_type` ENUM('linux','windows') NOT NULL DEFAULT 'linux',
|
||||
`workshop_app_id` VARCHAR(32) NOT NULL,
|
||||
`workshop_id` VARCHAR(64) NOT NULL,
|
||||
`title` VARCHAR(255) NULL,
|
||||
`cache_path` TEXT NOT NULL,
|
||||
`status` ENUM('missing','cached','failed') NOT NULL DEFAULT 'missing',
|
||||
`last_checked` DATETIME NULL,
|
||||
`last_updated` DATETIME NULL,
|
||||
`last_error` TEXT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_agent_workshop` (`agent_id`, `workshop_app_id`, `workshop_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."workshop_cache` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`agent_id` INT NOT NULL,
|
||||
`os_type` ENUM('linux','windows') NOT NULL DEFAULT 'linux',
|
||||
`workshop_app_id` VARCHAR(32) NOT NULL,
|
||||
`workshop_id` VARCHAR(64) NOT NULL,
|
||||
`title` VARCHAR(255) NULL,
|
||||
`cache_path` TEXT NOT NULL,
|
||||
`status` ENUM('missing','cached','failed') NOT NULL DEFAULT 'missing',
|
||||
`last_checked` DATETIME NULL,
|
||||
`last_updated` DATETIME NULL,
|
||||
`last_error` TEXT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_agent_workshop` (`agent_id`, `workshop_app_id`, `workshop_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci",
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `OGP_DB_PREFIXserver_workshop_mods` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`home_id` INT NOT NULL,
|
||||
`agent_id` INT NOT NULL,
|
||||
`profile_id` INT NOT NULL,
|
||||
`workshop_app_id` VARCHAR(32) NOT NULL,
|
||||
`workshop_id` VARCHAR(64) NOT NULL,
|
||||
`title` VARCHAR(255) NULL,
|
||||
`enabled` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`install_path` TEXT NOT NULL,
|
||||
`load_order` INT NOT NULL DEFAULT 0,
|
||||
`installed_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_home_workshop` (`home_id`, `workshop_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
SQL;
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."server_workshop_mods` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`home_id` INT NOT NULL,
|
||||
`agent_id` INT NOT NULL,
|
||||
`profile_id` INT NOT NULL,
|
||||
`workshop_app_id` VARCHAR(32) NOT NULL,
|
||||
`workshop_id` VARCHAR(64) NOT NULL,
|
||||
`title` VARCHAR(255) NULL,
|
||||
`enabled` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`install_path` TEXT NOT NULL,
|
||||
`load_order` INT NOT NULL DEFAULT 0,
|
||||
`installed_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uniq_home_workshop` (`home_id`, `workshop_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue