Added metas
This commit is contained in:
parent
4000a7bc1f
commit
a1484ba8c6
@ -7,13 +7,107 @@ require("../../include/inputs.php");
|
|||||||
require("../../include/panels.php");
|
require("../../include/panels.php");
|
||||||
|
|
||||||
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
|
$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>
|
<!DOCTYPE html>
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
|
|
||||||
<head>
|
<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>
|
<style>
|
||||||
.article .article-title {
|
.article .article-title {
|
||||||
font-family: cfont, Arial, sans-serif;
|
font-family: cfont, Arial, sans-serif;
|
||||||
@ -65,73 +159,34 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
|
|||||||
<main>
|
<main>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<?php
|
<?php
|
||||||
if (isset($_GET['article']) && filter_var($_GET['article'], FILTER_VALIDATE_INT) && file_exists($rootFilePath . 'content/articles/' . $_GET['article'] . '.md')) {
|
if(isset($articleID)) {
|
||||||
|
echo ('<div class="article">');
|
||||||
$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)";
|
echo ('<div class="article-info">');
|
||||||
$request = $pdo->prepare($sqlRequest);
|
echo ('<div class="article-title">' . $articleTitle . '</div>');
|
||||||
$request->bindParam(":articleID", $_GET['article']);
|
echo ('<div class="article-date">' . $pubDate);
|
||||||
$request->bindParam(":userAccreditation", $_SESSION['userAccreditation']);
|
if ($updateDate != 0) {
|
||||||
$request->bindParam(":userID", $_SESSION['userID']);
|
echo (' (Mis à jour le ' . $updateDate . ')');
|
||||||
$request->execute();
|
}
|
||||||
$result = $request->fetchAll(PDO::FETCH_ASSOC);
|
echo ('</div>');
|
||||||
|
if ($_SESSION['userID'] == $authorID) {
|
||||||
if($result) {
|
echo ('<a href="/editor?article=' . $articleID . '" class="button">Editer</a>');
|
||||||
$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'];
|
|
||||||
|
|
||||||
echo ('<div class="article">');
|
|
||||||
echo ('<div class="article-info">');
|
|
||||||
echo ('<div class="article-title">' . $articleTitle . '</div>');
|
|
||||||
echo ('<div class="article-date">' . $pubDate);
|
|
||||||
if ($updateDate != 0) {
|
|
||||||
echo (' (Mis à jour le ' . $updateDate . ')');
|
|
||||||
}
|
|
||||||
echo ('</div>');
|
|
||||||
if ($_SESSION['userID'] == $authorID) {
|
|
||||||
echo ('<a href="/editor?article=' . $articleID . '" class="button">Editer</a>');
|
|
||||||
}
|
|
||||||
|
|
||||||
userWidget($authorPPURL, $authorDisplayName, $authorUsername, $authorBadge, $rootPageURL);
|
|
||||||
|
|
||||||
echo ('<div class="article-illustration">');
|
|
||||||
echo ('<img src="' . $miniatureURL . '"/>');
|
|
||||||
echo ('</div>');
|
|
||||||
|
|
||||||
echo ('<div class="article-content">');
|
|
||||||
$pageContent = markdownContent($rootFilePath . 'content/articles/' . $articleID . '.md', $rootFilePath);
|
|
||||||
|
|
||||||
echo($pageContent);
|
|
||||||
echo ('</div>');
|
|
||||||
|
|
||||||
echo ('</div>');
|
|
||||||
echo ('</div>');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
userWidget($authorPPURL, $authorDisplayName, $authorUsername, $authorBadge, $rootPageURL);
|
||||||
$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 ('<div class="article-illustration">');
|
||||||
|
echo ('<img src="' . $miniatureURL . '"/>');
|
||||||
|
echo ('</div>');
|
||||||
|
|
||||||
|
echo ('<div class="article-content">');
|
||||||
|
$pageContent = markdownContent($rootFilePath . 'content/articles/' . $articleID . '.md', $rootFilePath);
|
||||||
|
|
||||||
|
echo($pageContent);
|
||||||
|
echo ('</div>');
|
||||||
|
|
||||||
|
echo ('</div>');
|
||||||
|
echo ('</div>');
|
||||||
|
} else {
|
||||||
echo ('<h1>News</h1>');
|
echo ('<h1>News</h1>');
|
||||||
|
|
||||||
echo ('<form action="" method="get">');
|
echo ('<form action="" method="get">');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user