mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2025-04-27 06:45:39 +00:00
126 lines
3.9 KiB
PHP
126 lines
3.9 KiB
PHP
<?php
|
|
|
|
session_start();
|
|
ob_start();
|
|
|
|
require_once './config.php';
|
|
require_once './_pdo.php';
|
|
|
|
require_once './src/D2Functions.php';
|
|
|
|
error_reporting(E_ALL);
|
|
set_time_limit(-1);
|
|
ini_set('max_input_time', '-1');
|
|
ini_set('max_execution_time', '0');
|
|
|
|
define('DB_FILE', $_SESSION['modname'] . ".db");
|
|
try {
|
|
PDO_Connect("sqlite:" . DB_FILE);
|
|
} catch (Exception $e) {
|
|
echo "Connection error: " . $e->getMessage();
|
|
}
|
|
|
|
|
|
$cmd = $_REQUEST['cmd'];
|
|
$tableName = $_REQUEST['tableName'];
|
|
|
|
function dumpAndProcessTable($tableName) {
|
|
// Set the path to the SQLite3 executable
|
|
$sqlitePath = "bin\sqlite3.exe";
|
|
|
|
// Dump the SQLite table to a TSV file
|
|
$tsvFile = $tableName . ".txt";
|
|
$dumpCommand = "bin\sqlite3.exe {$_SESSION['modname']}.db \"SELECT * FROM string\" -separator \"\t\" -cmd \".mode tabs\" -cmd \".headers off\" > \"{$_SESSION['tbl']}{$tsvFile}\"";
|
|
|
|
shell_exec($dumpCommand);
|
|
|
|
// Run the executable with the TSV file as input
|
|
$executablePath = "bin\EnquettarM.exe";
|
|
$processCommand = "{$executablePath} -i \"{$_SESSION['tbl']}{$tsvFile}\"";
|
|
|
|
$etxt = 'ModString.txt';
|
|
$etbl = 'ModString.tbl';
|
|
|
|
shell_exec($processCommand);
|
|
|
|
// now file is generated in rootdir, etbl, which we need to move to session tbl
|
|
rename($etbl, "{$_SESSION['tbl']}/$tableName.tbl");
|
|
|
|
// Remove the generated ModString.tbl
|
|
//unlink($etbl);
|
|
}
|
|
|
|
if ($cmd == "getTable") {
|
|
$query = "SELECT ROWID,* FROM $tableName";
|
|
$rows = PDO_Execute($query);
|
|
|
|
// Start the table with Bootstrap classes
|
|
$tableMarkup = '';
|
|
|
|
// Iterate over the rows
|
|
foreach ($rows as $row) {
|
|
$string = str_replace('\n', " ", $row['String']);
|
|
|
|
$tableMarkup .= "<tr class='row-{$row['rowid']}'>";
|
|
|
|
$tableMarkup .= "<td style='width: 64px;'>{$row['rowid']}</td>";
|
|
|
|
// Display the Key column as a text input with Bootstrap form-control class
|
|
$tableMarkup .= "<td style='width: 20%;'><input type='text' value='{$row['Key']}' class='form-control'><span style='visibility: hidden;'>{$row['Key']}</span></td>";
|
|
|
|
// Display the String column as a textarea with Bootstrap form-control class
|
|
$tableMarkup .= "<td><textarea class='form-control'>{$string}</textarea></td>";
|
|
|
|
// Add the Update and Delete links within a single td element
|
|
$tableMarkup .= "<td style='width: 100px;'><div>";
|
|
|
|
// Add the Update link with Bootstrap btn and btn-primary classes
|
|
$tableMarkup .= "<a href='#' class='update-link btn btn-primary' data-rowid='{$row['rowid']}'>Update</a>";
|
|
|
|
// Add the Delete link with Bootstrap btn and btn-danger classes
|
|
$tableMarkup .= "<a style='float:right' href='#' class='delete-link btn btn-danger' data-rowid='{$row['rowid']}'>Delete</a>";
|
|
|
|
$tableMarkup .= "</div></td>";
|
|
|
|
$tableMarkup .= "</tr>";
|
|
}
|
|
|
|
// Return the table markup
|
|
echo $tableMarkup;
|
|
}
|
|
|
|
|
|
if ($cmd == "update") {
|
|
$query = "UPDATE $tableName SET Key = ?, String = ? WHERE ROWID = ?";
|
|
PDO_Execute($query, [$_REQUEST['key'], $_REQUEST['string'], $_REQUEST['rowid']]);
|
|
dumpAndProcessTable($tableName);
|
|
echo $_REQUEST['key'] . " updated";
|
|
}
|
|
|
|
if ($cmd == "delete") {
|
|
$query = "DELETE FROM $tableName WHERE ROWID = ?";
|
|
PDO_Execute($query, [$_REQUEST['rowid']]);
|
|
dumpAndProcessTable($tableName);
|
|
echo $_REQUEST['rowid'] . " deleted";
|
|
}
|
|
|
|
if ($cmd == "add") {
|
|
$tableName = $_POST['tableName'];
|
|
$key = $_POST['Key'];
|
|
$string = $_POST['String'];
|
|
|
|
// Create your insert statement using the provided values
|
|
$query = "INSERT INTO $tableName (Key, String) VALUES (?, ?)";
|
|
$params = array($key, $string);
|
|
|
|
// Execute the insert statement
|
|
$result = PDO_Execute($query, $params);
|
|
|
|
// Retrieve the last inserted rowid from the table
|
|
$query = "SELECT last_insert_rowid() AS rowid";
|
|
$result = PDO_FetchOne($query);
|
|
|
|
echo $result;
|
|
dumpAndProcessTable($tableName);
|
|
}
|