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
$base = 'dbkemondejar';
$base = '';
$login = '';
$mdp = '';
@ -18,6 +18,10 @@ $vues['erreur'] = 'vue/erreur.php';
$vues['accueil'] = 'vue/accueil.php';
$vues['quote'] = 'vue/quote.php';
$vues['login'] = 'vue/login.html';
$vues['signin'] = 'vue/signin.html';
$vues['quiz'] = 'vue/quiz.html';
//Style css
$style['accueil'] = 'public/styles/styleAccueil.css';

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

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

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

@ -11,7 +11,7 @@ Class VisitorControler{
public function quote(array $arg){
global $vues;
$id=$arg['idQuote'] ?? 1;
//echo "{$id}";
require_once $vues['quote'];
@ -22,4 +22,10 @@ Class VisitorControler{
global $vues;
require_once $vues['login'];
}
public function signin(){
global $vues;
require_once $vues['signin'];
}
}

@ -1,14 +1,14 @@
<?php
namespace Gateway;
use PDO;
#use PDO;
class Connection extends \PDO {
class Connection extends \PDO {
private $stmt;
public function __construct(string $dsn, string $username, string $password) {
parent::__construct($dsn,$username,$password);
parent::__construct($dsn,$username,$password);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

@ -36,11 +36,11 @@ Class QuoteGateway{
return $result;
}
public function getComment(int $id):array{
//obtention des commentaire d'une citation
$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;";
$this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT)));
public function searchId(string $id):array{
//recherche par 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_STR)));
$result=$this->con->getResults();
return $result;
}
@ -64,7 +64,7 @@ Class QuoteGateway{
$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)
$query ='DELETE FROM Quote WHERE id_Quote=:id';
$this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT)));

@ -11,9 +11,9 @@
$this->gateway = $gate;
}
public function searchQuote(string $quote,int $numpage,string $language) : Quote{
$res = $this->gateway->searchQuote($quote,$numpage,$language);
return new Quote($res[0]['']);
public function searchId(int $id): Quote{
$res = $this->gate->searchId($id)[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">
<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>

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

@ -2,12 +2,13 @@
<div class="nav">
<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()">
<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 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 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>
Loading…
Cancel
Save