Added metas

This commit is contained in:
cbo 2024-03-18 13:22:51 +00:00
parent 4000a7bc1f
commit a1484ba8c6

View File

@ -7,13 +7,107 @@ require("../../include/inputs.php");
require("../../include/panels.php");
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
if (isset($_GET['article']) && filter_var($_GET['article'], FILTER_VALIDATE_INT) && file_exists($rootFilePath . 'content/articles/' . $_GET['article'] . '.md')) {
$sqlRequest = "SELECT articles.ID, articles.title, articles.creation_date, articles.last_update, articles.miniature, articles.resume, articles.author, users.username, users.display_name, roles.badge_svg, users.profile_picture FROM articles INNER JOIN users ON articles.author = users.ID LEFT JOIN roles ON users.role = roles.ID WHERE articles.ID = :articleID AND (articles.classification <= :userAccreditation OR articles.author = :userID)";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":articleID", $_GET['article']);
$request->bindParam(":userAccreditation", $_SESSION['userAccreditation']);
$request->bindParam(":userID", $_SESSION['userID']);
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
if($result) {
$pubDateTime = strtotime($result[0]['creation_date']);
$pubDate = date('d/m/Y H:i', $pubDateTime);
$updateDateTime = strtotime($result[0]['last_update']);
if($updateDateTime != $pubDateTime) {
$updateDate = date('d/m/Y H:i', $updateDateTime);
} else {
$updateDate = 0;
}
$articleID = $result[0]['ID'];
$articleTitle = $result[0]['title'];
$articleResume = $result[0]['resume'];
$miniatureURL = $result[0]['miniature'];
$authorUsername = $result[0]['username'];
$authorDisplayName = $result[0]['display_name'];
$authorBadge = $result[0]['badge_svg'];
$authorPPURL = $result[0]['profile_picture'] == NULL ? "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png" : $result[0]['profile_picture'];
$authorID = $result[0]['author'];
}
} else {
$search = isset($_GET['search']) ? "%" . htmlspecialchars($_GET['search']) . "%" : "%%";
$sqlRequest = "SELECT articles.ID, articles.title, articles.creation_date, articles.miniature, articles.resume, users.username, users.display_name, roles.badge_svg FROM articles INNER JOIN users ON articles.author = users.ID LEFT JOIN roles ON users.role = roles.ID WHERE (articles.title LIKE :search OR articles.ID LIKE :search OR users.username LIKE :search OR users.display_name LIKE :search) AND (articles.classification <= :userAccreditation OR articles.author = :userID) ORDER BY articles.creation_date DESC";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":search", $search);
$request->bindParam(":userAccreditation", $_SESSION['userAccreditation']);
$request->bindParam(":userID", $_SESSION['userID']);
$request->execute();
$articlesResult = $request->fetchAll(PDO::FETCH_ASSOC);
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<?php fillHead($rootPageURL, $pageTitle, $darkTheme, $lightTheme);?>
<?php
if (isset($articleID)) {
echo ('<title>' . $articleTitle . '</title>');
echo ('<meta charset="UTF-8">');
echo ('<meta name="viewport" content="width=device-width, initial-scale=1.0">');
echo ('<meta name="description" content="' . $articleResume . '">');
echo ('<meta name="author" content="' . $authorDisplayName . '">');
echo ('<meta property="og:locale" content="fr_FR">');
echo ('<meta property="og:site_name" content="E59">');
echo ('<meta property="og:type" content="article">');
echo ('<meta property="og:title" content="' . $articleTitle . '">');
echo ('<meta property="og:description" content="' . $articleResume . '">');
echo ('<meta property="og:url" content="' . $rootPageURL . 'news?article=' . $articleID . '">');
echo ('<meta property="og:image" content="' . $rootPageURL . $miniatureURL . '">');
echo ('<meta property="og:image:width" content="500">');
echo ('<meta property="og:image:height" content="300">');
echo ('<meta property="og:image:type" content="image/png">');
echo ('<meta property="og:article:published_time" content="' . $pubDateTime . '">');
echo ('<meta property="og:article:modified_time" content="' . $updateDateTime . '">');
echo ('<meta property="twitter:card" content="summary_large_image">');
echo ('<meta property="twitter:site" content="@clubreseaux">');
echo ('<meta property="twitter:title" content="' . $articleTitle . '">');
echo ('<meta property="twitter:description" content="' . $articleResume . '">');
echo ('<meta property="twitter:url" content="' . $rootPageURL . 'news?article=' . $articleID . '">');
echo ('<meta property="twitter:image" content="' . $rootPageURL . $miniatureURL . '">');
echo ('<meta property="ownpage:title" content="' . $articleTitle . '">');
echo ('<meta property="ownpage:description" content="' . $articleResume . '">');
echo ('<meta property="ownpage:published_date" content="' . $pubDateTime . '">');
echo ('<meta property="ownpage:image" content="' . $rootPageURL . $miniatureURL . '">');
echo ('<meta property="ownpage:offer_url" content="' . $rootPageURL . 'news?article=' . $articleID . '">');
echo ('<meta name="robots" content="max-snippet:-1,max-image-preview:large,noarchive">');
echo ('<link rel="stylesheet" href="' . $rootPageURL . 'src/css/style.css">');
echo ('<link rel="icon" href="' . $rootPageURL . 'src/img/favicon.ico">');
echo ('<style>');
echo ('@media (prefers-color-scheme: dark) {');
echo ($darkTheme);
echo ('}');
echo ('@media (prefers-color-scheme: light) {');
echo ($lightTheme);
echo ('}');
echo ('</style>');
} else {
fillHead($rootPageURL, $pageTitle, $darkTheme, $lightTheme);
}
?>
<style>
.article .article-title {
font-family: cfont, Arial, sans-serif;
@ -65,35 +159,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
<main>
<div class="content">
<?php
if (isset($_GET['article']) && filter_var($_GET['article'], FILTER_VALIDATE_INT) && file_exists($rootFilePath . 'content/articles/' . $_GET['article'] . '.md')) {
$sqlRequest = "SELECT articles.ID, articles.title, articles.creation_date, articles.last_update, articles.miniature, articles.resume, articles.author, users.username, users.display_name, roles.badge_svg, users.profile_picture FROM articles INNER JOIN users ON articles.author = users.ID LEFT JOIN roles ON users.role = roles.ID WHERE articles.ID = :articleID AND (articles.classification <= :userAccreditation OR articles.author = :userID)";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":articleID", $_GET['article']);
$request->bindParam(":userAccreditation", $_SESSION['userAccreditation']);
$request->bindParam(":userID", $_SESSION['userID']);
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
if($result) {
$pubDateTime = strtotime($result[0]['creation_date']);
$pubDate = date('d/m/Y H:i', $pubDateTime);
$updateDateTime = strtotime($result[0]['last_update']);
if($updateDateTime != $pubDateTime) {
$updateDate = date('d/m/Y H:i', $updateDateTime);
} else {
$updateDate = 0;
}
$articleID = $result[0]['ID'];
$articleTitle = $result[0]['title'];
$articleResume = $result[0]['resume'];
$miniatureURL = $result[0]['miniature'];
$authorUsername = $result[0]['username'];
$authorDisplayName = $result[0]['display_name'];
$authorBadge = $result[0]['badge_svg'];
$authorPPURL = $result[0]['profile_picture'] == NULL ? "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png" : $result[0]['profile_picture'];
$authorID = $result[0]['author'];
if(isset($articleID)) {
echo ('<div class="article">');
echo ('<div class="article-info">');
echo ('<div class="article-title">' . $articleTitle . '</div>');
@ -120,18 +186,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
echo ('</div>');
echo ('</div>');
}
} else {
$search = isset($_GET['search']) ? "%" . htmlspecialchars($_GET['search']) . "%" : "%%";
$sqlRequest = "SELECT articles.ID, articles.title, articles.creation_date, articles.miniature, articles.resume, users.username, users.display_name, roles.badge_svg FROM articles INNER JOIN users ON articles.author = users.ID LEFT JOIN roles ON users.role = roles.ID WHERE (articles.title LIKE :search OR articles.ID LIKE :search OR users.username LIKE :search OR users.display_name LIKE :search) AND (articles.classification <= :userAccreditation OR articles.author = :userID) ORDER BY articles.creation_date DESC";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":search", $search);
$request->bindParam(":userAccreditation", $_SESSION['userAccreditation']);
$request->bindParam(":userID", $_SESSION['userID']);
$request->execute();
$articlesResult = $request->fetchAll(PDO::FETCH_ASSOC);
echo ('<h1>News</h1>');
echo ('<form action="" method="get">');