0) { try { $stmt = $db->prepare("INSERT INTO tbl_scmining (cl_scmining_obj_id, cl_scmining_scan_value, cl_scmining_max_occurrence) VALUES (:obj_id, 0, 1)"); $stmt->execute(['obj_id' => $obj_id]); auth_flash_set('success', 'Minéral ajouté avec succès.'); } catch (PDOException $e) { if ($e->getCode() == 23000) { auth_flash_set('error', 'Ce minéral est déjà dans la liste.'); } else { auth_flash_set('error', "Erreur lors de l'ajout : " . $e->getMessage()); } } } header('Location: ' . scmining_search_url($return_search, $return_page)); exit; } // Update mineral values if ($action === 'update_mineral') { $mining_id = (int)$_POST['mining_id']; $scan_value = (int)$_POST['scan_value']; $max_occurrence = (int)$_POST['max_occurrence']; $can_manual = isset($_POST['can_manual']) ? 1 : 0; $can_land = isset($_POST['can_land']) ? 1 : 0; $can_space = isset($_POST['can_space']) ? 1 : 0; $stmt = $db->prepare("UPDATE tbl_scmining SET cl_scmining_scan_value = :scan, cl_scmining_max_occurrence = :occ, cl_scmining_can_manual = :manual, cl_scmining_can_land = :land, cl_scmining_can_space = :space WHERE cl_scmining_id = :id"); $stmt->execute([ 'scan' => $scan_value, 'occ' => $max_occurrence, 'manual' => $can_manual, 'land' => $can_land, 'space' => $can_space, 'id' => $mining_id ]); auth_flash_set('success', 'Valeurs mises à jour.'); header('Location: scmining.php'); exit; } // Remove mineral if ($action === 'delete_mineral') { $mining_id = (int)$_POST['mining_id']; $stmt = $db->prepare("DELETE FROM tbl_scmining WHERE cl_scmining_id = :id"); $stmt->execute(['id' => $mining_id]); auth_flash_set('success', 'Minéral retiré de la liste.'); header('Location: scmining.php'); exit; } } // Search for adding items function sc_normalize_rarity(?string $rarity): string { return strtoupper(trim((string) $rarity)); } function sc_rarity_class(?string $rarity): string { $rarity = sc_normalize_rarity($rarity); return in_array($rarity, ['L', 'E', 'R', 'U', 'C'], true) ? 'rarity-' . $rarity : 'rarity-none'; } function sc_rarity_style(?string $rarity): string { return match (sc_normalize_rarity($rarity)) { 'L' => 'color:#ff8000 !important;text-shadow:0 0 10px rgba(255,128,0,0.3);', 'E' => 'color:#a335ee !important;text-shadow:0 0 10px rgba(163,53,238,0.3);', 'R' => 'color:#0070dd !important;text-shadow:0 0 10px rgba(0,112,221,0.3);', 'U' => 'color:#1eff00 !important;text-shadow:0 0 10px rgba(30,255,0,0.3);', 'C' => 'color:#ffffff !important;', default => 'color:#8f96a3 !important;', }; } function scmining_search_url(string $search = '', int $page = 1): string { $params = []; if ($search !== '') { $params['search'] = $search; } if ($page > 1) { $params['search_page'] = $page; } return 'scmining.php' . ($params ? '?' . http_build_query($params) : ''); } $search = isset($_GET['search']) ? trim($_GET['search']) : ''; $search_page = max(1, (int)($_GET['search_page'] ?? 1)); $search_per_page = 10; $search_results = []; $search_total_results = 0; $search_total_pages = 0; $configured_matches = []; if ($search !== '') { $stmt_configured = $db->prepare("SELECT o.* FROM tbl_scobjs o JOIN tbl_scmining m ON m.cl_scmining_obj_id = o.cl_scobjs_id WHERE o.cl_scobjs_name LIKE :search ORDER BY o.cl_scobjs_name ASC, o.cl_scobjs_id ASC"); $stmt_configured->execute(['search' => "%$search%"]); $configured_matches = $stmt_configured->fetchAll(); $search_where = "FROM tbl_scobjs o WHERE o.cl_scobjs_name LIKE :search AND o.cl_scobjs_id NOT IN (SELECT cl_scmining_obj_id FROM tbl_scmining)"; $stmt_search_count = $db->prepare("SELECT COUNT(*) " . $search_where); $stmt_search_count->execute(['search' => "%$search%"]); $search_total_results = (int)$stmt_search_count->fetchColumn(); $search_total_pages = max(1, (int)ceil($search_total_results / $search_per_page)); $search_page = min($search_page, $search_total_pages); $search_offset = ($search_page - 1) * $search_per_page; $stmt_search = $db->prepare("SELECT o.* " . $search_where . " ORDER BY o.cl_scobjs_name ASC, o.cl_scobjs_id ASC LIMIT :limit OFFSET :offset"); $stmt_search->bindValue(':search', "%$search%", PDO::PARAM_STR); $stmt_search->bindValue(':limit', $search_per_page, PDO::PARAM_INT); $stmt_search->bindValue(':offset', $search_offset, PDO::PARAM_INT); $stmt_search->execute(); $search_results = $stmt_search->fetchAll(); } // Fetch current mining list $sql_list = "SELECT m.*, o.cl_scobjs_name, o.cl_scobjs_uuid, o.cl_scobjs_type, o.cl_scobjs_subtype, o.cl_scobjs_rarity FROM tbl_scmining m JOIN tbl_scobjs o ON m.cl_scmining_obj_id = o.cl_scobjs_id ORDER BY o.cl_scobjs_name ASC"; $stmt_list = $db->query($sql_list); $mining_list = $stmt_list->fetchAll(); $current_session_user = $_SESSION['user'] ?? ''; ?> Scanner Minage | R.E.A.C.T. Admin

R.E.A.C.T. Mining Scanner

Niveau d\'accès : Administrateur | Session :

Ajouter un Minéral

Déjà configuré 1 ? 's' : ''; ?> pour cette recherche
UUID: / — déjà présent dans Configuration Minerais
Déjà configuré

Aucun objet non listé trouvé.

Résultats à sur — page /
UUID: /
1): ?>
1): ?> « » Navigation des homonymes activée

Configuration Minerais

Aperçu Nom / Type Récupération Valeur Scan Max Occur. Actions
Aucun minéral configuré.

/