e59-website/html/users/index.php
Jan BELLON 1c3183f565 Update 2 files
- /include/functions.php
- /html/users/index.php
2024-03-14 23:03:03 +00:00

148 lines
7.9 KiB
PHP

<?php
require("../../include/variables.php");
require("../../include/functions.php");
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
if(isset($_GET['u']) && empty($_GET['u']) == false) {
$request = $pdo->prepare("SELECT ID, username, display_name, level, profile_picture, banner, bio FROM users WHERE username = :username");
$request->bindParam(":username", htmlspecialchars($_GET['u']));
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
if($result) {
$userID = $result[0]['ID'];
$userName = $result[0]['username'];
$userDisplayName = $result[0]['display_name'];
$userLevel = $result[0]['level'];
$userPPURL = $result[0]['profile_picture'] == NULL ? "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png" : $result[0]['profile_picture'];
$userBanner = $result[0]['banner'] = NULL ? "" : $result[0]['banner'];
$userBio = $result[0]['bio'];
} else {
$userID = 0;
$userName = htmlspecialchars($_GET['u']);
$userDisplayName = "Unknown";
$userLevel = 0;
$userPPURL = "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png";
$userBanner = "";
$userBio = "";
}
} else {
$userID = 0;
$userName = htmlspecialchars($_GET['u']);
$userDisplayName = "Unknown";
$userLevel = 0;
$userPPURL = "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png";
$userBanner = "";
$userBio = "";
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<?php fillHead($rootPageURL, $pageTitle, $darkTheme, $lightTheme);?>
<style>
.content {
padding: 0;
width: 100%;
}
.user-banner {
<?php
if (empty($userBanner)) {
echo "background-color: black";
} else {
echo "background-image: url('" . $userBanner . "');";
}
?>
}
.certification {
fill: <?php echo $userLevel > 0 ? $certificationColors[$userLevel] : "#000000"?>;
}
</style>
</head>
<body class="body">
<header>
<div class="panel-content">
<?php fillHeader($rootPageURL, $headerTitle, $headerSubtitle);?>
</div>
</header>
<nav>
<div class="panel-content">
<?php fillNav($rootPageURL);?>
</div>
</nav>
<main>
<div class="content">
<div class="user-profile">
<div class="user-banner"></div>
<div class="user-header">
<div class="user-header-content">
<div class="user-pp"><img src="<?=$userPPURL?>"></div>
<div class="status"><?=$status?></div>
<div class="user-info">
<div class="names">
<div class="display-name"><?=$userDisplayName?></div>
<div class="user-level">
<?php
if($userLevel > 1) {
echo '<svg class="certification" viewBox="0 0 22 22" aria-label="Compte certifié" role="img"><g><path class="cls-1" d="M959.75,457.79l-37.33-41.28c-13.58-15.01-19.1-35.64-14.85-55.43l11.69-54.41c6.79-31.59-11.46-63.19-42.21-73.11l-52.97-17.08c-19.26-6.21-34.36-21.31-40.57-40.57l-17.08-52.97c-9.92-30.75-41.51-49-73.11-42.21l-54.41,11.69c-19.79,4.25-40.41-1.27-55.43-14.85l-41.28-37.33c-23.96-21.67-60.45-21.67-84.42,0l-41.28,37.33c-15.01,13.58-35.64,19.1-55.43,14.85l-54.41-11.69c-31.59-6.79-63.19,11.46-73.11,42.21l-17.08,52.97c-6.21,19.26-21.31,34.36-40.57,40.57l-52.97,17.08c-30.75,9.92-49,41.51-42.21,73.11l11.69,54.41c4.25,19.79-1.27,40.41-14.85,55.43l-37.33,41.28c-21.67,23.97-21.67,60.45,0,84.42l37.33,41.28c13.58,15.01,19.1,35.64,14.85,55.43l-11.69,54.41c-6.79,31.59,11.46,63.19,42.21,73.11l52.97,17.08c19.26,6.21,34.36,21.31,40.57,40.57l17.08,52.97c9.92,30.75,41.51,49,73.11,42.21l54.41-11.69c19.79-4.25,40.41,1.28,55.43,14.85l41.28,37.33c23.97,21.67,60.45,21.67,84.42,0l41.28-37.33c15.01-13.58,35.64-19.1,55.43-14.85l54.41,11.69c31.59,6.79,63.19-11.46,73.11-42.21l17.08-52.97c6.21-19.26,21.31-34.36,40.57-40.57l52.97-17.08c30.75-9.92,49-41.51,42.21-73.11l-11.69-54.41c-4.25-19.79,1.28-40.41,14.85-55.43l37.33-41.28c21.67-23.96,21.67-60.45,0-84.42ZM749.62,426.54l-288.48,288.48c-15.74,15.74-41.25,15.74-56.99,0l-153.77-153.77c-20.45-20.45-20.45-53.62,0-74.07,20.45-20.45,53.62-20.45,74.07,0l108.19,108.19,242.91-242.91c20.46-20.45,53.62-20.45,74.07,0,20.45,20.45,20.45,53.62,0,74.07Z"/></g></svg>';
}
?>
</div>
<div class="username">@<?=$userName?></div>
<div class="bio"><?=$userBio?></div>
</div>
<div>
<?php
if ($userID == $_SESSION['userID']) {
echo '<a href="/account" class="button">Editer votre profil</a>';
}
?>
</div>
</div>
</div>
</div>
<div class="user-articles">
<div class="user-content">
<?php
$search = isset($_GET['search']) ? "%" . htmlspecialchars($_GET['search']) . "%" : "%%";
$request = $pdo->prepare("SELECT ID, title, date, miniature, resume FROM articles WHERE (title LIKE :search OR ID LIKE :search) AND author = :userID ORDER BY date DESC");
$request->bindParam(":search", $search);
$request->bindParam(":userID", $userID);
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
echo ('<h1>Articles de ' . $userDisplayName . '</h1>');
echo ('<form action="#" method="get">');
$shapePath = '<path d="M10.25 3.75c-3.59 0-6.5 2.91-6.5 6.5s2.91 6.5 6.5 6.5c1.795 0 3.419-.726 4.596-1.904 1.178-1.177 1.904-2.801 1.904-4.596 0-3.59-2.91-6.5-6.5-6.5zm-8.5 6.5c0-4.694 3.806-8.5 8.5-8.5s8.5 3.806 8.5 8.5c0 1.986-.682 3.815-1.824 5.262l4.781 4.781-1.414 1.414-4.781-4.781c-1.447 1.142-3.276 1.824-5.262 1.824-4.694 0-8.5-3.806-8.5-8.5z"></path>';
textInput("text", $shapePath, "search", "Chercher", "");
echo ('</form>');
if ($result) {
echo('<div class="articles-list">');
listArticles($result, $rootPageURL);
echo ('</div>');
} else {
echo ($userDisplayName . ' n\'a encore rien publié');
}
?>
</div>
</div>
</form>
</div>
</div>
</main>
<footer>
<div class="panel-content">
<?php fillFooter($footerText);?>
</div>
</footer>
</body>
</html>