Initial commit
This commit is contained in:
131
actions/bridge-editor.php
Normal file
131
actions/bridge-editor.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
$db = new SQLite3('../db-test/test.db');
|
||||
|
||||
$action = $_GET["action"];
|
||||
$meta = $_GET["meta"];
|
||||
|
||||
$bridgeName = $_SESSION["meta"];
|
||||
|
||||
$plug = json_decode(file_get_contents("../settings.json") , true)["plug"];
|
||||
|
||||
|
||||
// Funktion zur Bereinigung des Formats
|
||||
function cleanPinsArray(&$data) {
|
||||
// Überprüfen, ob das "pins"-Array vorhanden ist und es ein Array ist
|
||||
if (isset($data) && is_array($data)) {
|
||||
// Nur gültige Pins behalten
|
||||
$data = array_filter($data, function($pin) {
|
||||
// Sicherstellen, dass das Element nicht null ist und dass jedes Element im "pins"-Array genau 2 Einträge hat
|
||||
return is_array($pin) && count($pin) === 2 && is_integer($pin[0]) && is_integer($pin[1]);
|
||||
});
|
||||
|
||||
// Neu indexieren, um die Indizes korrekt zu halten
|
||||
$data = array_values($data);
|
||||
}
|
||||
}
|
||||
|
||||
switch ($action) {
|
||||
case "edit":
|
||||
|
||||
$bridge_name = $bridgeName;
|
||||
|
||||
$nodes = json_decode($meta, true); // Beispielwert
|
||||
$nodes = $nodes["pins"]; // Beispielwert
|
||||
|
||||
cleanPinsArray($nodes); // Dies stellt sicher, dass Javscript valide Werte bringt und die Datenbank nicht verunreinigt wird.
|
||||
|
||||
if (empty($nodes))
|
||||
{
|
||||
$message[0] = false;
|
||||
$message[1] = "Es wurden keine Änderungen gespeichert.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
}
|
||||
|
||||
$db->exec(" DELETE FROM nodes WHERE required_by = '" . $bridge_name . "' and plug_id = '" . $plug . "'; ");
|
||||
|
||||
foreach($nodes as $node) {
|
||||
$from = $node[0];
|
||||
$to = $node[1];
|
||||
$db->exec(" INSERT INTO nodes (required_by, node_from, node_to, plug_id) VALUES ('" . $bridge_name . "', '" . $from . "', '" . $to . "', '" . $plug . "'); ");
|
||||
}
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Änderungen für die Brücke $bridgeName wurden gespeichert!";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case "add":
|
||||
|
||||
// Eingabedaten
|
||||
$bridgeName = $bridgeName;
|
||||
$nodes = json_decode($meta, true);
|
||||
$name = $nodes["name"];
|
||||
$nodes = $nodes["pins"];
|
||||
|
||||
cleanPinsArray($nodes); // Dies stellt sicher, dass Javscript valide Werte bringt und die Datenbank nicht verunreinigt wird.
|
||||
|
||||
// sicherstellen, dass Werte gesetzt sind
|
||||
if (empty($nodes) || empty($name))
|
||||
{
|
||||
$message[0] = false;
|
||||
$message[1] = "Es wurden keine Änderungen gespeichert, da Parameter fehlten.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$result = $db->query("SELECT COUNT(*) as anzahl FROM bridges WHERE id = '" . $name . "';");
|
||||
$row = $result->fetchArray(SQLITE3_ASSOC);
|
||||
$number = $row['anzahl'];
|
||||
|
||||
if($number > 0) {
|
||||
$message[0] = false;
|
||||
$message[1] = "Es gibt bereits eine Brücke, die " . $name . " heißt. Bitte einen anderen Namen wählen oder die andere Brücke " . $name . " löschen/bearbeiten. Stellen Sie zudem sicher, dass Sie den korrekten Steckertypen verwenden.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
}
|
||||
|
||||
$db->exec(" INSERT INTO bridges (plug_id, id) VALUES (" . $plug . ", '" . $name . "'); ");
|
||||
|
||||
foreach($nodes as $node) {
|
||||
$from = $node[0];
|
||||
$to = $node[1];
|
||||
$db->exec(" INSERT INTO nodes (required_by, node_from, node_to, plug_id) VALUES ('" . $name . "', '" . $from . "', '" . $to . "', '" . $plug . "'); ");
|
||||
}
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Brücke $name wurde angelegt!";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
break;
|
||||
|
||||
case "remove":
|
||||
|
||||
$bridge_name = $meta;
|
||||
|
||||
$db->exec(" DELETE FROM nodes WHERE required_by = '" . $bridge_name . "' and plug_id = '" . $plug . "'; ");
|
||||
$db->exec(" DELETE FROM bridges WHERE id = '" . $bridge_name . "' and plug_id = '" . $plug . "'; ");
|
||||
|
||||
$message[0] = true;
|
||||
$message[1] = "Die Brücke $bridge_name wurde nun gelöscht.";
|
||||
$message = json_encode($message);
|
||||
print ($message);
|
||||
die();
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user