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); // // die(); // // // Convert TSV to TBL // // Run the executable with the TSV file as input // $executablePath = "bin\EnquettarM.exe"; // $processCommand = "{$executablePath} -i \"{$_SESSION['tbl']}{$tsvFile}\""; // // // will be saved into ModString.tbl // // $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") { $filePath = "{$_SESSION['tbl']}/$tableName.tbl"; $executablePath = getcwd() . "\bin\EnquettarM.exe"; $processCommand = "{$executablePath} -e \"$filePath\""; shell_exec($processCommand); rename(getcwd() . "\ModString.txt", "{$_SESSION['tbl']}/$tableName.txt"); $filePath = "{$_SESSION['tbl']}/$tableName.txt"; $fileLines = file($filePath); $rows = []; $rowid = 1; // Starting rowid value foreach ($fileLines as $line) { $row = explode("\t", $line); $key = $row[0]; $string = trim($row[1]); $rowData = [ 'rowid' => $rowid, 'Key' => $key, 'String' => $string ]; $rows[] = $rowData; $rowid++; } // Start the table with Bootstrap classes $tableMarkup = ''; // Iterate over the rows foreach ($rows as $row) { $row['String'] = str_replace('}', ' ', $row['String']); $tableMarkup .= ""; $tableMarkup .= "{$row['rowid']}"; // Display the Key column as a text input with Bootstrap form-control class $tableMarkup .= "{$row['Key']}"; // Display the String column as a textarea with Bootstrap form-control class $tableMarkup .= ""; // Add the Update and Delete links within a single td element $tableMarkup .= "
"; // Add the Update link with Bootstrap btn and btn-primary classes $tableMarkup .= "Update"; // Add the Delete link with Bootstrap btn and btn-danger classes $tableMarkup .= "Delete"; $tableMarkup .= "
"; $tableMarkup .= ""; } // Return the table markup echo $tableMarkup; } if ($cmd == "update") { $string = str_replace('\n', '}', $_REQUEST['string']); $query = "UPDATE $tableName SET Key = ?, String = ? WHERE Key = ?"; PDO_Execute($query, [$_REQUEST['key'], $string, $_REQUEST['key']]); // Update the corresponding row in the text file $filePath = "{$_SESSION['tbl']}/$tableName.txt"; $fileLines = file($filePath); // Calculate the line number to update based on the rowid $lineNumber = $_REQUEST['rowid']; // Update the line in the file with the new key and string values $fileLines[$lineNumber - 1] = "{$_REQUEST['key']}\t{$string}\n"; // Save the updated content back to the text file file_put_contents($filePath, implode("", array_filter($fileLines))); // Convert TXT to TBL $executablePath = "bin\EnquettarM.exe"; $processCommand = "{$executablePath} -i \"{$_SESSION['tbl']}/$tableName.txt\""; shell_exec($processCommand); rename(getcwd() . "\ModString.tbl", "{$_SESSION['tbl']}/$tableName.tbl"); // Remove empty lines from end of file // Read the file contents into an array of lines $lines = file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // Trim empty lines from the end of the array while (!empty($lines) && trim(end($lines)) === '') { array_pop($lines); } // Write the updated content back to the file file_put_contents($filePath, implode(PHP_EOL, $lines)); } if ($cmd == "delete") { $query = "DELETE FROM $tableName WHERE Key = ?"; PDO_Execute($query, [$_REQUEST['key']]); $rowid = $_REQUEST['rowid']; $filePath = "{$_SESSION['tbl']}/$tableName.txt"; // Calculate the line number to delete based on the rowid $lineNumber = $rowid - 1; // Assuming zero-indexed line numbers // Read the lines of the text file into an array $fileLines = file($filePath, FILE_IGNORE_NEW_LINES); // Remove the line at the specified line number if (isset($fileLines[$lineNumber])) { unset($fileLines[$lineNumber]); } // Save the updated content back to the text file file_put_contents($filePath, implode("\n", $fileLines)); // Convert TXT to TBL $executablePath = "bin\EnquettarM.exe"; $processCommand = "{$executablePath} -i \"{$_SESSION['tbl']}/$tableName.txt\""; shell_exec($processCommand); rename(getcwd() . "\ModString.tbl", "{$_SESSION['tbl']}/$tableName.tbl"); 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); // Append the new row to the text file $newLine = "{$key}\t{$string}"; file_put_contents($filePath, $newLine . PHP_EOL, FILE_APPEND); echo $result; }