diff --git a/db/init/001_schema.sql b/db/init/001_schema.sql index 973f710..63d858e 100644 --- a/db/init/001_schema.sql +++ b/db/init/001_schema.sql @@ -9,7 +9,7 @@ CREATE TABLE identities ( CREATE TABLE identity_fields ( id INT AUTO_INCREMENT PRIMARY KEY, identity_id INT NOT NULL, - typ ENUM('single','multi','file') NULL, + typ ENUM('single','multi','file','url') NULL, field_key VARCHAR(50) NOT NULL, field_value TEXT NOT NULL, FOREIGN KEY (identity_id) diff --git a/www/admin.php b/www/admin.php index 0eac413..6912db5 100644 --- a/www/admin.php +++ b/www/admin.php @@ -234,6 +234,7 @@ if ($action === 'identity_edit') { if ($_SERVER['REQUEST_METHOD'] === 'POST') { + // Identität umbenennen if (isset($_POST['rename'])) { $sql->set( "UPDATE identities SET name = ? WHERE id = ?", @@ -242,14 +243,46 @@ if ($action === 'identity_edit') { ); } + // Neues Feld if (isset($_POST['add_field'])) { $sql->set( - "INSERT INTO identity_fields (identity_id, field_key, field_value) - VALUES (?, ?, ?)", - "iss", - [$id, trim($_POST['key']), trim($_POST['value'])] + "INSERT INTO identity_fields (identity_id, field_key, field_value, typ) + VALUES (?, ?, ?, ?)", + "isss", + [ + $id, + trim($_POST['key']), + trim($_POST['value']), + $_POST['typ'] ?? 'single' + ] + ); + } + + // Feld aktualisieren + if (isset($_POST['update_field'])) { + $sql->set( + "UPDATE identity_fields + SET field_key = ?, field_value = ?, typ = ? + WHERE id = ? AND identity_id = ?", + "sssii", + [ + trim($_POST['key']), + trim($_POST['value']), + $_POST['typ'] ?? 'single', + (int)$_POST['field_id'], + $id + ] + ); + } + + // Feld löschen + if (isset($_POST['delete_field'])) { + $sql->set( + "DELETE FROM identity_fields + WHERE id = ? AND identity_id = ?", + "ii", + [(int)$_POST['field_id'], $id] ); - //TODO typ } header("Location: admin.php?action=identity_edit&id=$id"); @@ -257,14 +290,19 @@ if ($action === 'identity_edit') { } $fields = $sql->get( - "SELECT * FROM identity_fields WHERE identity_id = ?", + "SELECT * FROM identity_fields WHERE identity_id = ? ORDER BY id ASC", "i", [$id] ); ?> -
| Key | +Wert | +Typ | +Aktion | +
|---|---|---|---|