$id, 'ptname' => $id, 'selected' => ($row['@PASSTHROUGH'] === $id ? 'selected' : ''), ]; } return $out; } static $list = false; if ($list === false) { $list = Database::queryKeyValueList("SELECT groupid, title FROM passthrough_group ORDER BY groupid"); self::ensurePrepopulated($list); } $row['custom_groups'] = true; foreach ($list as $id => $title) { if ($id === 'GPU' || $id === 'GVT') continue; $item = ['ptid' => $id, 'ptname' => $id . ' (' . $title . ')']; if ($row['@PASSTHROUGH'] === $id) { $item['selected'] = 'selected'; } $out[] = $item; } return $out; } private static function ensurePrepopulated(&$list) { $want = [ 'GPU' => '[Special] GPU passthrough default group', 'GVT' => '[Special] Intel GVT-g default group', ]; foreach ($want as $id => $title) { if (!isset($list[$id])) { Database::exec("INSERT INTO passthrough_group (groupid, title) VALUES (:id, :title) ON DUPLICATE KEY UPDATE title = VALUES(title)", ['id' => $id, 'title' => $title]); $list[$id] = $title; } } } }