diff --git a/admin.php b/admin.php
index cd20e1f..1b57f32 100644
--- a/admin.php
+++ b/admin.php
@@ -520,6 +520,7 @@ $current_session_user = isset($_SESSION['user']) ? (string) $_SESSION['user'] :
diff --git a/scitems.php b/scitems.php
index 1543d8c..8f7aa9e 100644
--- a/scitems.php
+++ b/scitems.php
@@ -402,6 +402,7 @@ if ($edit_id > 0) {
diff --git a/scmining.php b/scmining.php
new file mode 100644
index 0000000..c7e49e1
--- /dev/null
+++ b/scmining.php
@@ -0,0 +1,416 @@
+ 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.php');
+ 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'];
+
+ $stmt = $db->prepare("UPDATE tbl_scmining SET cl_scmining_scan_value = :scan, cl_scmining_max_occurrence = :occ WHERE cl_scmining_id = :id");
+ $stmt->execute(['scan' => $scan_value, 'occ' => $max_occurrence, '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
+$search = isset($_GET['search']) ? trim($_GET['search']) : '';
+$search_results = [];
+if ($search !== '') {
+ $stmt_search = $db->prepare("SELECT * FROM tbl_scobjs WHERE cl_scobjs_name LIKE :search AND cl_scobjs_id NOT IN (SELECT cl_scmining_obj_id FROM tbl_scmining) ORDER BY cl_scobjs_name ASC LIMIT 10");
+ $stmt_search->execute(['search' => "%$search%"]);
+ $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
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ajouter un Minéral
+
+
+
+
+
+
Aucun objet non listé trouvé.
+
+
+
+

+
+
+ /
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration Minerais
+
+
+
+
+ | Aperçu |
+ Nom / Type |
+ Valeur Scan |
+ Max Occur. |
+ Actions |
+
+
+
+
+ | Aucun minéral configuré. |
+
+
+
+
+
+ |
+
+
+ /
+ |
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file