Fix: array offset on false in getNextAvailablePort, array-to-string in render_node attributes, missing columns in sync_billing_services INSERT

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/5bf3f57e-9174-4768-ae8b-c3526a1daeca

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-05-02 20:42:46 +00:00 committed by GitHub
parent 735322b8bc
commit d57e3d0152
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 6 deletions

View file

@ -3588,11 +3588,11 @@ class OGPDatabaseMySQL extends OGPDatabase
public function getNextAvailablePort($ip_id,$home_cfg_id){
$ranges = $this->getPortsRange($ip_id,$home_cfg_id);
$range = $ranges[0];
$range = is_array($ranges) ? ($ranges[0] ?? null) : null;
if(empty($range))
{
$ranges = $this->getPortsRange($ip_id,"0");
$range = $ranges[0];
$range = is_array($ranges) ? ($ranges[0] ?? null) : null;
}
if(empty($range))
$range = array('start_port' => '27015','end_port' => '39915', 'port_increment' => '100');

View file

@ -73,6 +73,9 @@ function sync_billing_services(mysqli $db, string $prefix): array
'price_year' => "ADD COLUMN `price_year` FLOAT(15,4) NOT NULL DEFAULT 0",
'remote_server_id' => "ADD COLUMN `remote_server_id` VARCHAR(255) NOT NULL DEFAULT ''",
'install_method' => "ADD COLUMN `install_method` VARCHAR(255) NOT NULL DEFAULT 'steamcmd'",
'ftp' => "ADD COLUMN `ftp` VARCHAR(255) NOT NULL DEFAULT ''",
'manual_url' => "ADD COLUMN `manual_url` VARCHAR(255) NOT NULL DEFAULT ''",
'access_rights' => "ADD COLUMN `access_rights` VARCHAR(255) NOT NULL DEFAULT ''",
];
foreach ($autoRepairCols as $col => $alterFragment) {
@ -138,12 +141,14 @@ function sync_billing_services(mysqli $db, string $prefix): array
(home_cfg_id, mod_cfg_id, service_name, description,
remote_server_id, enabled, out_of_stock,
price_daily, price_monthly, price_year,
slot_min_qty, slot_max_qty, install_method)
slot_min_qty, slot_max_qty, install_method,
img_url, ftp, manual_url, access_rights)
VALUES
({$homeCfgId}, {$modCfgId}, '{$svcName}', '{$svcName}',
'', 0, 0,
0, 0, 0,
1, 100, 'steamcmd')"
1, 100, 'steamcmd',
'', '', '', '')"
);
$messages[] = "Added new service: " . ($gm['mod_name'] ?: $gm['game_name']);
}

View file

@ -173,9 +173,9 @@ function config_games_render_node(SimpleXMLElement $node, array $ancestors, arra
}
$attributes = $node->attributes();
if ($attributes && count((array)$attributes) > 0) {
if ($attributes && count($attributes) > 0) {
$html .= "<div class='xml-node__attributes'><strong>Attributes</strong>";
foreach ((array)$attributes as $attrName => $attrValue) {
foreach ($attributes as $attrName => $attrValue) {
$attrSafe = htmlspecialchars($attrName, ENT_QUOTES, 'UTF-8');
$valSafe = gsp_value_to_editable_string($attrValue);
$html .= "<div class='attr-row'><span>{$attrSafe}</span><input type='text' name=\"nodes[{$safeNodeKey}][attributes][{$attrSafe}]\" value=\"{$valSafe}\" placeholder='Leave blank to remove'></div>";