pull/21/head
brongniart 6 months ago
commit c1b4508828

@ -0,0 +1,3 @@
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

@ -9,7 +9,7 @@ $rep = __DIR__ . '/../';
//BD //BD
$base = 'dbkemondejar'; $base = '';
$login = ''; $login = '';
$mdp = ''; $mdp = '';
@ -18,6 +18,10 @@ $vues['erreur'] = 'vue/erreur.php';
$vues['accueil'] = 'vue/accueil.php'; $vues['accueil'] = 'vue/accueil.php';
$vues['quote'] = 'vue/quote.php'; $vues['quote'] = 'vue/quote.php';
$vues['login'] = 'vue/login.html'; $vues['login'] = 'vue/login.html';
$vues['signin'] = 'vue/signin.html';
$vues['quiz'] = 'vue/quiz.html';
//Style css //Style css
$style['accueil'] = 'public/styles/styleAccueil.css'; $style['accueil'] = 'public/styles/styleAccueil.css';

@ -11,6 +11,7 @@ require_once __DIR__ . '/config/config.php';
require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/vendor/autoload.php';
$co = new \Gateway\Connection('pgsql:host=localhost;dbname=dbkekentin;', 'kekentin', 'Chocolat-77'); $co = new \Gateway\Connection('pgsql:host=localhost;dbname=dbkekentin;', 'kekentin', 'Chocolat-77');
//twig //twig
@ -20,7 +21,7 @@ $twig = new \Twig\Environment($loader, [
]); ]);
$cont = new Controleur\FrontControler($co); $cont = new Controleur\FrontControler(/*$co*/);
session_unset(); session_unset();
session_destroy(); session_destroy();

@ -1,15 +1,21 @@
<?php <?php
namespace Controleur; namespace Controleur;
use Gateway\Connection;
Class FrontControler{ Class FrontControler{
private $listAction; private $listAction;
private string $role = 'admin'; private string $role = 'admin' //Mettre en admin le temps de créer les comptes
private Connection $co;
public function __construct(){ public function __construct(/*$co*/){
global $twig; global $twig;
$this->listAction = ['visitor' => array('accueil','search','quote','login','signin'), $this->listAction = ['visitor' => array('accueil','search','quote','login','signin'),
'user' => array('quiz','commentary','favorite','logout'), 'user' => array('quiz','commentary','favorite','logout'),
'admin' => array('null')]; 'admin' => array('null')];
@ -32,14 +38,17 @@ Class FrontControler{
$router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler'); $router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler');
$router->map('GET|POST', '/login', 'VisitorControler'); $router->map('GET|POST', '/login', 'VisitorControler');
$router->map('GET|POST', '/signin', 'VisitorControler'); $router->map('GET|POST', '/signin', 'VisitorControler');
$router->map('GET|POST', '/quiz', 'UserControler'); $router->map('GET|POST', '/quiz', 'UserControler');
$router->map('GET|POST', '/quiz/[i:id]?', 'QuizControler');
$match = $router->match(); $match = $router->match();
$action = NULL; $action = NULL;
if(!$match){ if(!$match){
$dVueEreur[] = "Requette introuvable"; $dVueEreur[] = "Requête introuvable";
$this->vueErreur($dVueEreur); $this->vueErreur($dVueEreur);
} }
else{ else{

@ -0,0 +1,10 @@
<?php
namespace Controleur;
Class UserControler{
public function quiz(){
global $vues;
require_once $vues['quiz'];
}
}

@ -22,4 +22,10 @@ Class VisitorControler{
global $vues; global $vues;
require_once $vues['login']; require_once $vues['login'];
} }
public function signin(){
global $vues;
require_once $vues['signin'];
}
} }

@ -1,9 +1,9 @@
<?php <?php
namespace Gateway; namespace Gateway;
use PDO; #use PDO;
class Connection extends \PDO { class Connection extends \PDO {
private $stmt; private $stmt;

@ -36,11 +36,11 @@ Class QuoteGateway{
return $result; return $result;
} }
public function getComment(int $id):array{ public function searchId(string $id):array{
//obtention des commentaire d'une citation //recherche par id
$query="SELECT c.id_comment u.username, u.imgPath, c.comment, c.date FROM Commentary c JOIN Quote q ON c.quote = q.id_quote JOIN User u ON u.id_user = c.user JOIN Image i ON i.id_img = u.img WHERE id_quote = :id;"; $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE q.id_quote = '%:id%' AND q.isValid = true;";
$this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR)));
$result=$this->con->getResults(); $result=$this->con->getResults();
return $result; return $result;
} }
@ -64,7 +64,7 @@ Class QuoteGateway{
$this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT)));
} }
public function validQuote(int $id){ public function invalidQuote(int $id){
//Invalide la quote par l'admin (suppression) //Invalide la quote par l'admin (suppression)
$query ='DELETE FROM Quote WHERE id_Quote=:id'; $query ='DELETE FROM Quote WHERE id_Quote=:id';
$this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT)));

@ -11,9 +11,9 @@
$this->gateway = $gate; $this->gateway = $gate;
} }
public function searchQuote(string $quote,int $numpage,string $language) : Quote{ public function searchId(int $id): Quote{
$res = $this->gateway->searchQuote($quote,$numpage,$language); $res = $this->gate->searchId($id)[0];
return new Quote($res[0]['']); return new Quote($res["q.id_quote"],$res["q.content"],$res["c.caracter"],$res["c.img_path"],$res["s.title"],$res["s.date"],$res["q.like"],$res["q.language"]);
} }
} }

@ -36,7 +36,7 @@
<div class="createAccount"> <div class="createAccount">
<p class="createAccount">Vous n'avez pas de compte?</p> <p class="createAccount">Vous n'avez pas de compte?</p>
<a href="signin.html" class="createAccount">S'incrire</a> <a href="/signin" class="createAccount">S'incrire</a>
</div> </div>

@ -1,14 +1,6 @@
<?php <?php
//appele avec index.php ne pas metre si controleur fonctionnel global $twig;
require __DIR__ . '/../vendor/autoload.php';
$loader = new \Twig\Loader\FilesystemLoader('vue/templates');
$twig = new \Twig\Environment($loader, [
'cache' => false,
]);
//global $twig;
echo $twig->render('head.html.twig', array( echo $twig->render('head.html.twig', array(
'title' => "Quote", 'title' => "Quote",

@ -2,12 +2,13 @@
<div class="nav"> <div class="nav">
<a href="favorite.html"><img src="../images/coeur.svg" alt="coeur" width="67px" height="67px" onmousedown="return false"></a> <a href="favorite.html"><img src="../images/coeur.svg" alt="coeur" width="67px" height="67px" onmousedown="return false"></a>
<img id="theme-icon" src="../images/light.svg" alt="toggle theme" width="72px" height="37px" onmousedown="return false" onclick="toggleTheme()"> <img id="theme-icon" src="../images/light.svg" alt="toggle theme" width="72px" height="37px" onmousedown="return false" onclick="toggleTheme()">
<a href="quiz.html"><img src="../images/quizz.svg" alt="quizz" width="51px" height="82px" onmousedown="return false"></a> <a href="/quiz"><img src="../images/quizz.svg" alt="quizz" width="51px" height="82px" onmousedown="return false"></a>
</div> </div>
<div class="logo"> <div class="logo">
<a href="accueil.html"><img src="../images/WIKIFANTASY.png" alt="Logo" width="227px" height="106px" onmousedown="return false"></a> <a href="/"><img src="../images/WIKIFANTASY.png" alt="Logo" width="227px" height="106px" onmousedown="return false"></a>
</div> </div>
<div class="user"> <div class="user">
<a href="profil.html"><img src="../images/user_dark.png" alt="user" width="70px" height="70px" onmousedown="return false"></a> <a href="/login"><img src="../images/user_dark.png" alt="user" width="70px" height="70px" onmousedown="return false"></a>
</div> </div>
</div> </div>
Loading…
Cancel
Save