page fav + fix accueil

pull/21/head
Maxime ROCHER 5 months ago
parent 09f7c0c0ca
commit 0df7d9de8e

@ -1,5 +1,11 @@
@import url('style.css'); /* Import de style.css */
h2 {
text-align: center;
font-size: 2em;
margin: 20px 0;
}
/* Conteneur général pour les citations */
.citations-section {
display: flex;

@ -7,7 +7,7 @@ Class FrontControler{
private $listAction;
private string $role = 'admin'; //Mettre en admin le temps de créer les comptes
private string $role = 'user'; //Mettre en admin le temps de créer les comptes
private Connection $co;
@ -16,8 +16,8 @@ Class FrontControler{
$this->listAction = ['visitor' => array('accueil','search','quote','login','signin', 'favorite'),
'user' => array('quiz','commentary','logout'),
$this->listAction = ['visitor' => array('accueil','search','quote','login','signin'),
'user' => array('quiz','commentary','logout', 'favorite'),
'admin' => array('null')];
$dVueEreur = [];
@ -40,7 +40,7 @@ Class FrontControler{
$router->map('GET|POST', '/quote/[i:idQuote]', 'VisitorControler','quote');
$router->map('GET|POST', '/login', 'VisitorControler','login');
$router->map('GET|POST', '/signin', 'VisitorControler','signin');
$router->map('GET|POST', '/favorite', 'VisitorControler','favorite');
$router->map('GET|POST', '/favorite', 'UserControler','favorite');
$router->map('GET|POST', '/quiz/[i:id]?', 'QuizControler','quiz');

@ -1,23 +1,29 @@
<?php
namespace Controleur;
Class UserControler{
use Gateway\QuoteGateway;
public function quiz(){
class UserControler {
private QuoteGateway $quoteGateway;
public function __construct() {
global $co;
$this->quoteGateway = new QuoteGateway($co);
}
public function quiz() {
global $vues;
require_once $vues['quiz'];
}
public function favorits() {
public function favorite(array $args) {
global $vues;
$user = $_SESSION['username'];
$idUser = $this->userGateway->getIdUser($user);
$userId = 1;
$suggestions = $this->favoritsGateway->getFavorits(0, 'fr');
$favorites = $this->quoteGateway->getFavorites($userId);
require_once $vues['favorits'];
require_once $vues['favorite'];
}
}

@ -30,11 +30,8 @@ class VisitorControler {
public function quote(array $arg) {
global $vues;
<<<<<<< HEAD
$id = $arg['idQuote'] ?? 1;
=======
$id=$arg['idQuote'];
>>>>>>> refs/remotes/origin/master
$q = $this->qMod->searchId($id);
require_once $vues['quote'];
}
@ -48,9 +45,4 @@ class VisitorControler {
global $vues;
require_once $vues['signin'];
}
public function favorite() {
global $vues;
require_once $vues['favorite'];
}
}

@ -129,6 +129,27 @@ Class QuoteGateway{
return $result;
}
public function getFavorites(string $userId): array {
$query = "SELECT q.id_quote, q.content, c.caracter, i.imgPath, s.title, s.dateS, q.likes, q.langue
FROM Favorite f
JOIN Quote q ON f.quote = q.id_quote
JOIN Caracter c ON c.id_caracter = q.id_caracter
JOIN Source s ON s.id_source = q.id_source
JOIN Image i ON c.id_img = i.id_img
WHERE f.users = :userId";
try {
$this->con->executeQuery($query, [
':userId' => [$userId, PDO::PARAM_STR]
]);
return $this->con->getResults();
} catch (PDOException $e) {
echo "Erreur dans getFavorites: " . $e->getMessage();
return [];
}
}
}
?>

@ -11,21 +11,5 @@ class AccueilGateway {
$this->con = $con;
}
public function getSuggestions(int $numpage, string $language): array {
$username = $_SESSION['username'];
$userId = $this->userGateway->getIdUser($username);
$query = "SELECT q.id_quote, q.content, c.caracter, i.imgPath, s.title, s.dateS, q.likes, q.langue
FROM Quote q
JOIN Favorite f ON f.quote = q.id_quote
JOIN Caracter c ON c.id_caracter = q.id_caracter
JOIN Source s ON s.id_source = q.id_source
JOIN Image i ON c.id_img = i.id_img
WHERE q.isValide = true
AND q.langue = :language
AND f.users = :userId";
return $this->con->getResults();
}
}

@ -5,6 +5,7 @@ global $twig;
echo $twig->render('head.html.twig', [
'title' => "Accueil",
'style' => "public/styles/styleAccueil.css",
'scripts' => array("public/script/theme-toggle.js")
]);

@ -1,25 +1,28 @@
<?php
global $twig;
// Rendu de l'en-tête
echo $twig->render('head.html.twig', [
'title' => "Accueil",
'title' => "Favoris",
'style' => "public/styles/styleAccueil.css",
'scripts' => array("public/script/theme-toggle.js")
]);
// Rendu du bandeau
echo $twig->render('bandeau.html.twig');
echo "<h2>Favorits</h2>";
echo "<div class='suggestions-container'>";
foreach ($suggestions as $suggestion) {
echo $twig->render('favorits.html.twig', [
'quote' => $suggestion['content'],
'movie' => $suggestion['title'],
'character' => $suggestion['caracter'],
'year' => $suggestion['dates'],
'imagePath' => $suggestion['imgpath']
]);
if (!empty($favorites)) {
echo "<h2>Vos favoris</h2>";
echo "<div class='suggestions-container'>";
foreach ($favorites as $favorite) {
echo $twig->render('suggestion.html.twig', [
'quote' => $favorite['content'],
'movie' => $favorite['title'],
'character' => $favorite['caracter'],
'year' => $favorite['dates'],
'imagePath' => $favorite['imgpath']
]);
}
echo "</div>";
} else {
echo "<p>Vous n'avez pas encore de favorits</p>";
}
echo "</div>";
?>
Loading…
Cancel
Save