= htmlspecialchars($config_item) ?>:
+ if ($parent === 'platforms') { ?>
edit
+ if (count($configPart) <= 1) { ?>
delete
delete
@@ -32,14 +39,16 @@ function renderConfig($config, $indent, $platform=false) {
$value) {
- // Create a regex pattern to match the key-value pair for the specified platform ID
- $pattern = "/((?:'[^']+'\s*=>\s*'[^']+'\s*,?\s*)*)('{$key}'\s*=>\s*)'[^']*'/s";
- // Replace using a callback to handle the match and replacement
- $updatedContent = preg_replace_callback($pattern, function($matches) use ($value) {
- return $matches[1] . $matches[2] . "'{$value}'";
- }, $updatedContent
+ // new platform adding
+ if (isset($_POST['new']) && $_POST['new'] === 'true') {
+ $newPlatform = [
+ 'name' => $_POST['name'],
+ 'jilo_database' => $_POST['jilo_database'],
+ ];
+
+ // Determine the next available index for the new platform
+ $nextIndex = count($config['platforms']);
+
+ // Add the new platform to the platforms array
+ $config['platforms'][$nextIndex] = $newPlatform;
+
+ // Rebuild the PHP array syntax for the platforms
+ $platformsArray = formatArray($config['platforms']);
+
+ // Replace the platforms section in the config file
+ $updatedContent = preg_replace(
+ '/\'platforms\'\s*=>\s*\[[\s\S]+?\],/s',
+ "'platforms' => {$platformsArray}",
+ $content
);
+ $updatedContent = preg_replace('/\s*\]\n/s', "\n", $updatedContent);
+
+ // deleting a platform
+ } elseif (isset($_POST['delete']) && $_POST['delete'] === 'true') {
+ $platform = $_POST['platform'];
+
+ $config['platforms'][$platform]['name'] = $_POST['name'];
+ $config['platforms'][$platform]['jilo_database'] = $_POST['jilo_database'];
+
+ $platformsArray = formatArray($config['platforms'][$platform], 3);
+
+ $updatedContent = preg_replace(
+ "/\s*'$platform'\s*=>\s*\[\s*'name'\s*=>\s*'[^']*',\s*'jilo_database'\s*=>\s*'[^']*',\s*\],/s",
+ "",
+ $content
+ );
+
+
+ // an update to an existing platform
+ } else {
+
+ $platform = $_POST['platform'];
+
+ $config['platforms'][$platform]['name'] = $_POST['name'];
+ $config['platforms'][$platform]['jilo_database'] = $_POST['jilo_database'];
+
+ $platformsArray = formatArray($config['platforms'][$platform], 3);
+
+ $updatedContent = preg_replace(
+ "/\s*'$platform'\s*=>\s*\[\s*'name'\s*=>\s*'[^']*',\s*'jilo_database'\s*=>\s*'[^']*',\s*\],/s",
+ "\n '{$platform}' => {$platformsArray},",
+ $content
+ );
+
}
+
+
// check if file is writable
if (!is_writable($config_file)) {
$_SESSION['error'] = getError('Configuration file is not writable.');
@@ -45,9 +96,15 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// no form submitted, show the templates
} else {
switch ($action) {
+ case 'add':
+ include('../app/templates/config-add-platform.php');
+ break;
case 'edit':
include('../app/templates/config-edit-platform.php');
break;
+ case 'delete':
+ include('../app/templates/config-delete-platform.php');
+ break;
default:
include('../app/templates/config-list.php');
}
diff --git a/app/templates/config-add-platform.php b/app/templates/config-add-platform.php
new file mode 100644
index 0000000..b8e66c5
--- /dev/null
+++ b/app/templates/config-add-platform.php
@@ -0,0 +1,39 @@
+
+
+
+
diff --git a/app/templates/config-delete-platform.php b/app/templates/config-delete-platform.php
new file mode 100644
index 0000000..54434ed
--- /dev/null
+++ b/app/templates/config-delete-platform.php
@@ -0,0 +1,29 @@
+
+
+
+
diff --git a/app/templates/config-edit-platform.php b/app/templates/config-edit-platform.php
index f6e7519..7db13ed 100644
--- a/app/templates/config-edit-platform.php
+++ b/app/templates/config-edit-platform.php
@@ -1,7 +1,7 @@
-
+
edit the platform details:
+
+
descriptive name for the platform
+
+
path to the database file (relative to the app root)
+
-
-
Cancel
+
+
+
Cancel
diff --git a/app/templates/page-menu.php b/app/templates/page-menu.php
index e1d5c37..421e8ad 100644
--- a/app/templates/page-menu.php
+++ b/app/templates/page-menu.php
@@ -12,11 +12,13 @@
+ $platform) { ?>