-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathuserdisplay.php
More file actions
114 lines (99 loc) · 4.46 KB
/
userdisplay.php
File metadata and controls
114 lines (99 loc) · 4.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<?php
require_once 'vendor/autoload.php';
require_once('src/models/functions.php');
$dbCreds = databaseCredentials('.env');
$driver = new \Aternos\Model\Driver\Mysqli\Mysqli($dbCreds['host'], 3306, $dbCreds['user'], $dbCreds['password'], "", $dbCreds['database']);
\Aternos\Model\Driver\DriverRegistry::getInstance()->registerDriver($driver);
include "src/models/classes/User.php";
include "src/models/classes/Article.php";
$username = explode("-", explode("/", $_SERVER['REQUEST_URI'])[2]);
$user = User::select(["username" => $username[0]]);
?>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo 'Aternos Guides - ' . $user[0]->username ?></title>
<script src="https://kit.fontawesome.com/d1393c407a.js" crossorigin="anonymous"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<meta name="description" content="<?= $user[0]->about ?>">
<meta name="author" content="<?= $user[0]->username ?>">
<link rel="stylesheet" href="/src/styling/main.css">
</head>
<body>
<?php include_once 'src/models/navbar.php' ?>
<?php
if (isset($_SESSION['authenticated'])) {
$userQuery = User::get($_SESSION['authenticated']);
}
session_abort();
?>
<div class="pt-5 container">
<div>
<?php
if (count($user) === 0) {
echo '<h2>This article could not be found...</h2>';
} else {
if (isset($_SESSION['authenticated']) && ($userQuery->roleID) >= 2) {
echo <<<EOL
<div class="btn-group">
<form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" role="search" action="/src/validation/userDelete.php" method="POST">
<input type="hidden" name="user_id" value="{$user[0]->id}">
<button class="btn btn-danger" type="submit">Delete user</button>
</form>
<form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" role="search" action="/src/validation/userEditRole.php" method="POST">
<input type="hidden" name="user_id" value="{$user[0]->id}">
<select name="role">
<option value="0">User</option>
<option value="1">Writer</option>
<option value="2">Admin</option>
</select>
<button class="btn btn-danger" type="submit">Update role</button>
</form>
EOL;
}
// if ((isset($_SESSION['authenticated']) && $_SESSION['authenticated'] === $user[0]->id) || (isset($userQuery) && $userQuery->roleID > 1)) {
// echo <<<EOL
// <form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" role="search" action="/userEditor.php" method="POST">
// <input type="hidden" name="user_id" value="{$user[0]->id}">
// <button class="btn btn-warning" type="submit">Edit user</button>
// </form>
// </div>
// <hr>
// EOL;
// }
}
?>
</div>
<div>
<h1><?= $user[0]->username ?></h1>
<?= $user[0]->about ?>
</div>
<?php
$articleQueryResult = Article::select(["author"=>$user[0]->username]);
if (count($articleQueryResult) !== 0) {
echo "
<div class=\"text-center pt-5 container\">
<h2>Articles</h2>
</div>";
foreach ($articleQueryResult as $article) {
/** @var Article $article */
$url = $article->id . '-' . str_replace(' ', '-', $article->title);
echo <<<EOL
<a href="/article/$url">
<div class="card text-start">
<div class="card-body">
<h5 class="card-title">$article->title</h5>
<p class="card-text">$article->summary</p>
</div>
</div>
</a>
EOL;
}
}
?>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body>
</html>