❌ Unable to load Application Settings."; exit(); } // Database Connection $host = (string) $applicationSettings->DatabaseServer; $database = (string) $applicationSettings->DatabaseName; $user = (string) $applicationSettings->DatabaseUser; $password = (string) $applicationSettings->DatabasePassword; try { $connection = new PDO("mysql:host={$host};dbname={$database}", $user, $password); $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); // Disable foreign key checks temporarily $connection->exec("SET FOREIGN_KEY_CHECKS = 0"); } catch (PDOException | Exception $e) { echo "
❌ Unable to connect to the database.
Error: {$e->getMessage()}
"; exit(); } // Get all table definition files $tableFiles = array_diff(scandir("."), ['.', '..', '_createSystemTable.php', '_createTable.php']); foreach ($tableFiles as $tableFile) { $tableName = basename($tableFile, ".php"); echo "
Processing {$tableName}...
"; try { $connection->exec("DROP VIEW IF EXISTS `view_{$tableName}`"); } catch (PDOException $e) { echo "
⚠️ Error dropping view view_{$tableName}: {$e->getMessage()}
"; } try { $connection->exec("DROP TABLE IF EXISTS `{$tableName}`"); } catch (PDOException $e) { echo "
⚠️ Error dropping table {$tableName}: {$e->getMessage()}
"; } $SQL = null; if (!include $tableFile) { echo "
❌ Failed to include {$tableFile}. Skipping.
"; continue; } runSQL($SQL, $connection, $tableName); switch ($tableFile) { case 'popovers.php': $sqlQueries = [ // (same array from before) "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('find_user', 'Find User', 'Find User...', '

Find by Name, Email, or Role

', CURDATE(), 'Init Script')", "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('find_report', 'Find Report', 'Find Report...', '

Find by Name or Description

', CURDATE(), 'Init Script')", "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('select_report', 'Select Report', 'Find Report...', '

Find by Name, Email, or Role

', CURDATE(), 'Init Script')", "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('find_popover', 'Find Popover', 'Find Popover...', '

Find by Name, Title or Placeholder

', CURDATE(), 'Init Script')", "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('find_journal', 'Find Journal', 'Find Journal...', '

Find by Name, Email, or Role

', CURDATE(), 'Init Script')", "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('find_status', 'Find Status', 'Find Status...', '

Find by Name

', CURDATE(), 'Init Script')", "INSERT INTO popovers (popover_name, popover_title, popover_placeholder, popover_text, popover_created, popover_creator) VALUES ('find_dropdowntype', 'Find Dropdown Types', 'Find Dropdown Types...', '

Search for dropdown types

', CURDATE(), 'Init Script')" ]; foreach ($sqlQueries as $sql) { runSQL($sql, $connection, "popovers data"); } break; case 'users.php': $password = password_hash("349Jamot@", PASSWORD_DEFAULT); $sql = "INSERT INTO users (user_id, user_name, user_email, user_password, user_role, user_change_password, user_active, user_creator, user_created) VALUES ('jric11', 'James Richie', 'james.richie@onesourceits.com', '{$password}', 'Administrator', 0, 1, 'Init Script', CURDATE())"; runSQL($sql, $connection, "initial admin user"); break; default: // Nothing extra break; } } echo "
✅ System Tables Created.
"; /** * Executes a SQL query and handles error output */ function runSQL($SQL, $connection, $context = 'query') { try { $connection->exec($SQL); } catch (PDOException $e) { echo "
❌ Error running {$context}: {$e->getMessage()}
"; exit(); } } ?>