120 lines
3.5 KiB
PHP
Executable File
120 lines
3.5 KiB
PHP
Executable File
<?php
|
|
echo file_get_contents("ddd_source.html");
|
|
|
|
// Parse the config file
|
|
$config = parse_ini_file('config.cfg', true);
|
|
|
|
// Database connection
|
|
$db = null;
|
|
|
|
if (isset($config['options']) && isset($config['options']['database'])) {
|
|
$database = $config['options']['database'];
|
|
|
|
if ($database === 'mysql') {
|
|
$mysql_host = $config['mysql']['host'];
|
|
$mysql_username = $config['mysql']['username'];
|
|
$mysql_password = $config['mysql']['password'];
|
|
$mysql_database = $config['mysql']['database'];
|
|
|
|
$mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password, $mysql_database);
|
|
|
|
if ($mysqli->connect_error) {
|
|
die("Connection failed: " . $mysqli->connect_error);
|
|
} else {
|
|
$db = $mysqli;
|
|
}
|
|
} elseif ($database === 'sqlite') {
|
|
$db_path = 'db/ddd_db.sqlite';
|
|
if (file_exists($db_path)) {
|
|
try {
|
|
$db = new SQLite3($db_path);
|
|
} catch (Exception $e) {
|
|
die("Failed to open the SQLite database: " . $e->getMessage());
|
|
}
|
|
} else {
|
|
die("Database file does not exist: " . $db_path);
|
|
}
|
|
} else {
|
|
die("Unsupported database type specified in config.cfg");
|
|
}
|
|
} else {
|
|
die("Database configuration not found in config.cfg");
|
|
}
|
|
|
|
// Get mode from request
|
|
$mode = $_REQUEST['mode'] ?? 'DX';
|
|
|
|
// Construct query based on mode
|
|
if ($mode == "DX") {
|
|
echo "<img src='/ddddxhs_files/top100dx.png' alt='Top 100 DX Mode'>";
|
|
$query = "SELECT * FROM scores WHERE Mode = 'DX' ORDER BY Score DESC LIMIT 100";
|
|
} elseif ($mode == "EX") {
|
|
echo "<img src='/ddddxhs_files/top100ex.png' alt='Top 100 EX Mode'>";
|
|
$query = "SELECT * FROM scores WHERE Mode = 'EX' ORDER BY Score DESC LIMIT 100";
|
|
} else {
|
|
die("Invalid mode specified");
|
|
}
|
|
|
|
// Execute query and fetch results
|
|
$result = null;
|
|
|
|
if ($db instanceof SQLite3) {
|
|
$result = $db->query($query);
|
|
} elseif ($db instanceof mysqli) {
|
|
$result = $db->query($query);
|
|
}
|
|
|
|
if ($result) {
|
|
$counter = 1;
|
|
echo "<div class='top3'><ol>";
|
|
|
|
while ($row = ($db instanceof SQLite3) ? $result->fetchArray(SQLITE3_ASSOC) : $result->fetch_assoc()) {
|
|
$output = "<span id='player'>" . $counter . " " . $row["Name"] . "</span>" . " " .
|
|
"<span id='score'>" . number_format($row["Score"]) . "</span>";
|
|
|
|
// Retrieve the boss names and split them into an array
|
|
$bosses = explode(",", $row["Bosses"]);
|
|
|
|
echo "<li class='scoreEntry " . ($counter % 2 == 0 ? 'even' : 'odd') . "'>";
|
|
echo "<div class='scoreInfo'>";
|
|
echo $output;
|
|
echo "</div>";
|
|
|
|
if (!empty($bosses)) {
|
|
echo "<div class='bossImages'>";
|
|
|
|
// Display an image for each boss name
|
|
foreach ($bosses as $boss) {
|
|
$bossImage = trim(strtolower($boss)) . ".png";
|
|
if ($bossImage != ".png") {
|
|
echo "<div class='bossImageWrapper'>";
|
|
echo "<img id='boss_image' src='/boss_images/" . $bossImage . "' alt='" . $boss . "' title='" . $boss . "'>";
|
|
echo "<div class='bossLabel'>" . $boss . "</div>";
|
|
echo "</div>";
|
|
}
|
|
}
|
|
|
|
echo "</div>";
|
|
}
|
|
|
|
echo "</li>";
|
|
|
|
$counter++;
|
|
}
|
|
|
|
echo "</ol></div>";
|
|
|
|
} else {
|
|
echo "<br>0 results";
|
|
}
|
|
|
|
// Close database connection
|
|
if ($db instanceof SQLite3) {
|
|
$db->close();
|
|
} elseif ($db instanceof mysqli) {
|
|
$db->close();
|
|
}
|
|
?>
|
|
<br>
|
|
<a class='ddd' href='ddd_index.php'>Back</a>
|