From 53da09bd9868c083c091595c5d112a6daa77db6e Mon Sep 17 00:00:00 2001 From: Sundog Date: Thu, 16 May 2024 12:07:00 -0400 Subject: [PATCH] add admin page for npcs --- src/webserver/admin/npcs.php | 148 +++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 src/webserver/admin/npcs.php diff --git a/src/webserver/admin/npcs.php b/src/webserver/admin/npcs.php new file mode 100644 index 0000000..4e0a91e --- /dev/null +++ b/src/webserver/admin/npcs.php @@ -0,0 +1,148 @@ + + + +

Wander Admin

+ +

Non-Player Characters

+ +

Create New NPC

+ + + + + + + + + + + + + + + + +query('SELECT * FROM NPCs'); + while ($row = $results->fetchArray()) { + ?> + + + + + + + + + + + + + +
IDNameDescriptionActive?Unique?Model PathImage PathAvatar PathMinimum Group SizeMaximum Group Size
'>
+ +Create a New NPC"; + displayForm(false); + break; + case 'edit': + // edit POI form + echo "

Edit NPC

"; + displayForm(true); + break; + case 'save': + if (isset($_POST['name']) && isset($_POST['description']) && isset($_POST['is_active'])) { + // do the insert or update + if (!isset($_POST['id'])) { + // insert + $stmt = $conn->prepare('INSERT INTO NPCs (name, description, is_active, is_unique, model_path, image_path, avatar_path, minimum_group, maximum_group) VALUES (:name, :description, :is_active, :is_unique, :model_path, :image_path, :avatar_path, :minimum_group, :maximum_group)'); + } else { + // update + $stmt = $conn->prepare('UPDATE NPCs SET name=:name, description=:description, is_active=:is_active, is_unique=:is_unique, model_path=:model_path, image_path=:image_path, avatar_path=:avatar_path, minimum_group=:minimum_group, maximum_group=:maximum_group WHERE id = :id'); + if ($stmt) $stmt->bindValue(':id', $_POST['id']); + } + if ($stmt) { + $stmt->bindValue(':name', $_POST['name'], SQLITE3_TEXT); + $stmt->bindValue(':description', $_POST['description'], SQLITE3_TEXT); + $stmt->bindValue(':is_active', $_POST['is_active'] === "on" ? 1 : 0, SQLITE3_INTEGER); + $stmt->bindValue(':is_unique', $_POST['is_unique'] === "on" ? 1 : 0, SQLITE3_INTEGER); + $stmt->bindValue(':model_path', $_POST['model_path'], SQLITE3_TEXT); + $stmt->bindValue(':image_path', $_POST['image_path'], SQLITE3_TEXT); + $stmt->bindValue(':avatar_path', $_POST['avatar_path'], SQLITE3_TEXT); + $stmt->bindValue(':minimum_group', is_numeric($_POST['minimum_group']) ? intval($_POST['minimum_group']) : 1, SQLITE3_INTEGER); + $stmt->bindValue(':maximum_group', is_numeric($_POST['maximum_group']) ? intval($_POST['maximum_group']) : 10, SQLITE3_INTEGER); + $result = $stmt->execute(); + if ($result) { + if (isset($_POST['id'])) { + echo "

Record updated. < back to Non-Player Characters

\n"; + } else { + echo "

Record created. < back to Non-Player Characters

\n"; + } + } else { + echo "

OOPS! There was a problem adding the new NPC!

\n"; + } + } else { + echo "

OOPS! There was a problem adding the new NPC!!

\n"; + } + } else { + echo "Name and Description are required - please go back and try again\n"; + } + break; + default: + echo "Unknown action: " . $_GET['action']; + } + } + +?> + +

< back to Admin

+ + +
+ +prepare('SELECT * FROM NPCs WHERE id = :id'); + if ($lookupStmt) { + $lookupStmt->bindValue(':id', $_REQUEST['id']); + $lookupResult = $lookupStmt->execute(); + if ($lookupResult) { + $npc = $lookupResult->fetchArray(); + } + } + echo "

ID: " . $_REQUEST['id'] . "

\n"; + echo "\n"; + } +?> +

/>

+

/>

+

/>

+

/>

+

/>

+

/>

+

/>

+

/>

+

/>

+

+
+