recupe quote

pull/21/head
brongniart 5 months ago
commit 7b98ca54a8

@ -32,5 +32,5 @@ $style['accueil'] = 'public/styles/styleAccueil.css';
//Images //Images
$image['default'] = 'public/images/default.jpg'; $image['default'] = 'public/images/default.jpg';
?>

@ -1,108 +1,109 @@
<?php <?php
namespace Controleur; namespace Controleur;
use Gateway\Connection; use Gateway\Connection;
Class FrontControler{ Class FrontControler{
private $listAction; private $listAction;
private string $role = 'admin'; //Mettre en admin le temps de créer les comptes private string $role = 'admin'; //Mettre en admin le temps de créer les comptes
private Connection $co; private Connection $co;
public function __construct($co){ 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')];
$dVueEreur = []; $dVueEreur = [];
$router = new \AltoRouter(); $router = new \AltoRouter();
$router->setBasePath('/~kekentin/WF/WF-Website'); $router->setBasePath('/~kekentin/WF/WF-Website');
$router->map('GET', '/', 'VisitorControler','accueil'); $router->map('GET', '/', 'VisitorControler','accueil');
/* /*
'i' => '[0-9]++' 'i' => '[0-9]++'
'a' => '[0-9A-Za-z]++' 'a' => '[0-9A-Za-z]++'
'h' => '[0-9A-Fa-f]++' 'h' => '[0-9A-Fa-f]++'
'*' => '.+?' '*' => '.+?'
'**' => '.++' '**' => '.++'
'' => '[^/\.]++' '' => '[^/\.]++'
*/ */
$router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler','quote'); $router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler','quote');
$router->map('GET|POST', '/login', 'VisitorControler','login'); $router->map('GET|POST', '/login', 'VisitorControler','login');
$router->map('GET|POST', '/signin', 'VisitorControler','signin'); $router->map('GET|POST', '/signin', 'VisitorControler','signin');
$router->map('GET|POST', '/quiz/[i:id]?', 'QuizControler','quiz'); $router->map('GET|POST', '/quiz/[i:id]?', 'QuizControler','quiz');
$router->map('GET|POST', '/search/[a:type]?', 'VisitorControler','search'); $router->map('GET|POST', '/search/[a:type]?', 'VisitorControler','search');
$match = $router->match(); $match = $router->match();
$action = NULL; $action = NULL;
if(!$match){ if(!$match){
$dVueEreur[] = "Requête introuvable"; $dVueEreur[] = "Requête introuvable";
$this->vueErreur($dVueEreur); $this->vueErreur($dVueEreur);
} }
else{ else{
$controller=$match['target'] ?? null; $controller=$match['target'] ?? null;
$action = $match['name']; $action = $match['name'];
//Si existe, on lappelle //Si existe, on lappelle
if(!$this->ifExisteAction($action)){ if(!$this->ifExisteAction($action)){
$dVueEreur[] = "Action introuvable"; $dVueEreur[] = "Action introuvable";
$this->vueErreur($dVueEreur); $this->vueErreur($dVueEreur);
} }
else if(!$this->verifDroit($action)){ else if(!$this->verifDroit($action)){
$action='login'; $action='login';
$controller='VisitorControler'; $controller='VisitorControler';
} }
else { else {
$controller = '\\Controleur\\' . $controller; $controller = '\\Controleur\\' . $controller;
$controller = new $controller($co); $controller = new $controller($co);
if (is_callable(array($controller, $action))) { if (is_callable(array($controller, $action))) {
call_user_func_array(array($controller, $action), call_user_func_array(array($controller, $action),
array($match['params'])); array($match['params']));
} }
} }
} }
} }
private function ifExisteAction(string $action):bool { private function ifExisteAction(string $action):bool {
if( in_array($action , $this->listAction['admin']) || if( in_array($action , $this->listAction['admin']) ||
in_array($action , $this->listAction['user']) || in_array($action , $this->listAction['user']) ||
in_array($action , $this->listAction['visitor']) ) { in_array($action , $this->listAction['visitor']) ) {
return true; return true;
} }
return false; return false;
} }
private function verifDroit(string $action):bool { private function verifDroit(string $action):bool {
if( in_array($action , $this->listAction['admin']) && $this->role == 'admin') return true; if( in_array($action , $this->listAction['admin']) && $this->role == 'admin') return true;
elseif( in_array($action , $this->listAction['user']) && ($this->role == 'admin' || $this->role == 'user') ) return true; elseif( in_array($action , $this->listAction['user']) && ($this->role == 'admin' || $this->role == 'user') ) return true;
elseif(in_array($action , $this->listAction['visitor']) && ($this->role == 'admin'|| $this->role == 'user'|| $this->role == 'visitor')) return true; elseif(in_array($action , $this->listAction['visitor']) && ($this->role == 'admin'|| $this->role == 'user'|| $this->role == 'visitor')) return true;
return false; return false;
} }
private function vueErreur(array $dVueErreur){ private function vueErreur(array $dVueErreur){
global $vues; global $vues;
echo "{$dVueErreur[0]}"; echo "{$dVueErreur[0]}";
require_once $vues['erreur']; require_once $vues['erreur'];
} }
} }

@ -1,37 +1,46 @@
<?php <?php
namespace Controleur; namespace Controleur;
use Model\QuoteModel;
Class VisitorControler{ use Gateway\Connection;
use Gateway\QuoteGateway;
public function accueil(){
global $vues; Class VisitorControler{
require_once $vues['accueil'];
} private QuoteModel $qMod;
public function quote(array $arg){ public function __construct(){
global $vues; global $co;
$id=$arg['idQuote'] ?? 1; $this->qMod = new QuoteModel(new QuoteGateway($co));
}
//echo "{$id}";
public function accueil(){
require_once $vues['quote']; global $vues;
} require_once $vues['accueil'];
}
public function login(){
public function quote(array $arg){
global $vues; global $vues;
require_once $vues['login']; $id=$arg['idQuote'] ?? 1;
} $q = $this->qMod->searchId($id);
//echo "{$id}";
public function signin(){ require_once $vues['quote'];
}
global $vues;
require_once $vues['signin']; public function login(){
}
global $vues;
public function search(){ require_once $vues['login'];
}
global $vues;
require_once $vues['search']; public function signin(){
}
} global $vues;
require_once $vues['signin'];
}
public function search(){
global $vues;
require_once $vues['search'];
}
}

@ -1,135 +1,134 @@
<?php <?php
namespace Gateway; namespace Gateway;
use Connection; use PDO;
Class QuoteGateway{
Class QuoteGateway{ private Connection $con;
private Connection $con;
public function __construct(Connection $con){
public function __construct(Connection $con){ $this->con=$con;
$this->con=$con; }
}
public function searchQuote(string $quote,int $numpage,string $language):array{
public function searchQuote(string $quote,int $numpage,string $language):array{
//recherche par citation
//recherche par citation $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 content LIKE '%:quote%' AND isValid = true AND language = :language LIMIT 20 OFFSET :page*20;";
$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 content LIKE '%:quote%' AND isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; $this->con->executeQuery($query,array(':quote' => array($quote,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR)));
$this->con->executeQuery($query,array(':quote' => array($quote,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); $result=$this->con->getResults();
$result=$this->con->getResults(); return $result;
return $result; }
}
public function searchSource(string $source,int $numpage,string $language):array{
public function searchSource(string $source,int $numpage,string $language):array{
//recherche par source
//recherche par source $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 s.title LIKE '%:source%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;";
$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 s.title LIKE '%:source%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; $this->con->executeQuery($query,array(':source' => array($source,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR)));
$this->con->executeQuery($query,array(':source' => array($source,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); $result=$this->con->getResults();
$result=$this->con->getResults(); return $result;
return $result; }
}
public function searchPers(string $Carac,int $numpage,string $language):array{
public function searchPers(string $Carac,int $numpage,string $language):array{
//recherche par personnage
//recherche par personnage $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 c.caracter LIKE '%:pers%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;";
$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 c.caracter LIKE '%:pers%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; $this->con->executeQuery($query,array(':pers' => array($Pers,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR)));
$this->con->executeQuery($query,array(':pers' => array($Pers,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); $result=$this->con->getResults();
$result=$this->con->getResults(); return $result;
return $result; }
}
public function searchId(string $id):array{
public function searchId(string $id):array{
//recherche par id
//recherche par id $query="SELECT q.id_quote, q.content, c.caracter, i.imgPath, s.title, s.dates, q.likes, q.langue FROM Quote q 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.id_quote = :id AND q.isvalide = true;";
$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)));
$this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR))); $result=$this->con->getResults();
$result=$this->con->getResults(); return $result;
return $result; }
}
//======================== PARTI ADMIN ========================
//======================== PARTI ADMIN ======================== //Probablement à déplacer dans un autre fichier
//Probablement à déplacer dans un autre fichier
public function getQuoteIsValide():array{
public function getQuoteIsValide():array{ //obtenir les quotes en attentes de validation par l'admin
//obtenir les quotes en attentes de validation par l'admin $query = 'SELECT * FROM Quote WHERE isValid=:bool';
$query = 'SELECT * FROM Quote WHERE isValid=:bool'; $this->con->executeQuery($query,array(':bool' => array(false, PDO::PARAM_BOOL)));
$this->con->executeQuery($query,array(':bool' => array(false, PDO::PARAM_BOOL))); $result=$this->con->getResults();
$result=$this->con->getResults(); return $result;
return $result; }
}
public function validQuote(int $id){
public function validQuote(int $id){ //Valider la quote par l'admin
//Valider la quote par l'admin $query ='UPDATE Quote SET isValid=:newValide WHERE id_Quote=:id';
$query ='UPDATE Quote SET isValid=:newValide 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))); }
}
public function invalidQuote(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))); }
}
public function updateContent(int $id, string $newContent):array{
public function updateContent(int $id, string $newContent):array{ //Update le contexte de quote passé en paramètre
//Update le contexte de quote passé en paramètre $queryUpdate = 'UPDATE Quote SET content=:newContent WHERE id_quote=:idQuote';
$queryUpdate = 'UPDATE Quote SET content=:newContent WHERE id_quote=:idQuote'; $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newContent'=> array($newContent, PDO::PARAM_STR)));
$con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newContent'=> array($newContent, PDO::PARAM_STR)));
//Renvoie le nouveau contexte de quote
//Renvoie le nouveau contexte de quote $queryReponse = 'SELECT content FROM Quote WHERE id_quote=:idQuote';
$queryReponse = 'SELECT content FROM Quote WHERE id_quote=:idQuote'; $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR)));
$con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); $result = $con->getResults();
$result = $con->getResults(); return $result;
return $result; }
}
public function updateTimeCode(int $id, string $newTimeCode):array{
public function updateTimeCode(int $id, string $newTimeCode):array{ //Update le time code de quote passé en paramètre
//Update le time code de quote passé en paramètre $queryUpdate = 'UPDATE Quote SET timecode=:newTimeCode WHERE id_quote=:idQuote';
$queryUpdate = 'UPDATE Quote SET timecode=:newTimeCode WHERE id_quote=:idQuote'; $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTimeCode'=> array($newTimeCode, PDO::PARAM_STR)));
$con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTimeCode'=> array($newTimeCode, PDO::PARAM_STR)));
//Renvoie le nouveau contexte de quote
//Renvoie le nouveau contexte de quote $queryReponse = 'SELECT timecode FROM Quote WHERE id_quote=:idQuote';
$queryReponse = 'SELECT timecode FROM Quote WHERE id_quote=:idQuote'; $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR)));
$con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); $result = $con->getResults();
$result = $con->getResults(); return $result;
return $result; }
}
public function updateDate(int $id, int $newDate):array{
public function updateDate(int $id, int $newDate):array{ //Update la date de quote passé en paramètre
//Update la date de quote passé en paramètre $queryUpdate = 'UPDATE Source SET dateSource =:newdate WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)';
$queryUpdate = 'UPDATE Source SET dateSource =:newdate WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)'; $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newDate'=> array($newDate, PDO::PARAM_INT)));
$con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newDate'=> array($newDate, PDO::PARAM_INT)));
//Renvoie la nouvelle date de quote
//Renvoie la nouvelle date de quote $queryReponse = 'SELECT s.dateSource FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource';
$queryReponse = 'SELECT s.dateSource FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource'; $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR)));
$con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); $result = $con->getResults();
$result = $con->getResults(); return $result;
return $result; }
}
public function updateTitle(int $id, string $newTitle):array{
public function updateTitle(int $id, string $newTitle):array{ //Update le titre de l'oeuvre de quote passé en paramètre
//Update le titre de l'oeuvre de quote passé en paramètre $queryUpdate = 'UPDATE Source SET title =:newTitle WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)';
$queryUpdate = 'UPDATE Source SET title =:newTitle WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)'; $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTitle'=> array($newTitle, PDO::PARAM_STR)));
$con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTitle'=> array($newTitle, PDO::PARAM_STR)));
//Renvoie le nouveau titre de quote
//Renvoie le nouveau titre de quote $queryReponse = 'SELECT s.title FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource';
$queryReponse = 'SELECT s.title FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource'; $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR)));
$con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); $result = $con->getResults();
$result = $con->getResults(); return $result;
return $result; }
}
public function updateNameCharacter(int $id, string $newNameCharacter):array{
public function updateNameCharacter(int $id, string $newNameCharacter):array{ //Update le personnage de l'oeuvre de quote passé en paramètre
//Update le personnage de l'oeuvre de quote passé en paramètre $queryUpdate = 'UPDATE Character SET name =:newNameCharacter WHERE idCharacter = (SELECT idCharacter FROM Quote WHERE idQuote =:idQuote)';
$queryUpdate = 'UPDATE Character SET name =:newNameCharacter WHERE idCharacter = (SELECT idCharacter FROM Quote WHERE idQuote =:idQuote)'; $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newNameCharacter'=> array($newNameCharacter, PDO::PARAM_STR)));
$con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newNameCharacter'=> array($newNameCharacter, PDO::PARAM_STR)));
//Renvoie le nouveau personnage de quote
//Renvoie le nouveau personnage de quote $queryReponse = 'SELECT c.title FROM Character c, Quote q WHERE id_quote=:idQuote AND c.idCharacter = q.idCharacter';
$queryReponse = 'SELECT c.title FROM Character c, Quote q WHERE id_quote=:idQuote AND c.idCharacter = q.idCharacter'; $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR)));
$con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); $result = $con->getResults();
$result = $con->getResults(); return $result;
return $result; }
}
}
}
?>
?>

@ -0,0 +1,23 @@
<?php
namespace Model;
use Entity\Quote;
use Gateway\QuoteGateway;
class QuoteModel
{
private QuoteGateway $gateway;
public function __construct(QuoteGateway $gate){
$this->gateway = $gate;
}
public function searchId(int $id): Quote{
$res = $this->gateway->searchId($id);
if( count($res) == 0)
return new Quote(-1,"NULL","NULL","NULL","NULL","NULL",0,"Default");
else
return new Quote($res[0]["id_quote"],$res[0]["content"],$res[0]["caracter"],$res[0]["imgpath"],$res[0]["title"],$res[0]["dates"],$res[0]["likes"],$res[0]["langue"]);
}
}
?>

@ -1,20 +0,0 @@
<?php
namespace Model;
use Entity\Quote;
use Gateway\QuoteGateway;
class QuoteModel
{
private QuoteGateway $gateway;
public function __construct(QuoteGateway $gate){
$this->gateway = $gate;
}
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"]);
}
}
?>

@ -1,12 +1,12 @@
<?php <?php
global $twig; global $twig;
echo $twig->render('head.html.twig', array( echo $twig->render('head.html.twig', array(
'title' => "Login", 'title' => "Login",
'style' => "public/styles/styleLogin.css", 'style' => "public/styles/styleLogin.css",
)); ));
echo $twig->render('bandeau.html.twig'); echo $twig->render('bandeau.html.twig');
echo $twig->render('login.html'); echo $twig->render('login.html');
?> ?>

@ -1,21 +1,20 @@
<?php <?php
global $twig; global $twig;
echo $twig->render('head.html.twig', array( echo $twig->render('head.html.twig', array(
'title' => "Quote", 'title' => "Quote",
'style' => "public/styles/styleQuote.css", 'style' => "../public/styles/styleQuote.css",
)); ));
echo $twig->render('bandeau.html.twig');
echo $twig->render('bandeau.html.twig'); echo $twig->render('quote.html', array(
echo $twig->render('quote.html', array( 'srcImg' => $q->getImgPath(),
'srcImg' => "public/images/Dark_Vador.jpg", 'nameCarac' => $q->getCarac(),
'nameCarac' => "Dark Vador", 'quoteContent' => $q->getContent(),
'quoteContent' => "Je suis ton père", 'sourceName' => $q->getTitleSrc(),
'sourceName' => "Star Wars V : LEmpire contre-attaque", 'dateSortie' => $q->getDateSrc(),
'dateSortie' => "1980", 'nbLike' => $q->getLike(),
'nbLike' => "173000", 'timeCode' =>"1h45",
'timeCode' =>"1h45",
));
));
?> ?>

@ -1,37 +1,38 @@
<div class="container">
<div class="header"> <div class="container">
<div class="nav"> <div class="header">
<img src="images/coeur.svg" alt="coeur" width="67px" height="67px" onmousedown="return false"> <div class="nav">
<img id="theme-icon" src="images/light.svg" alt="toggle theme" width="72px" height="37px" onmousedown="return false" onclick="toggleTheme()"> <img src="images/coeur.svg" alt="coeur" width="67px" height="67px" onmousedown="return false">
<img src="images/quizz.svg" alt="quizz" width="51px" height="82px" onmousedown="return false"> <img id="theme-icon" src="images/light.svg" alt="toggle theme" width="72px" height="37px" onmousedown="return false" onclick="toggleTheme()">
</div> <img src="images/quizz.svg" alt="quizz" width="51px" height="82px" onmousedown="return false">
<div class="logo"> </div>
<a href="/~kekentin/WF/WF-Website/"><img src="images/WIKIFANTASY.png" alt="Logo" width="227px" height="106px" onmousedown="return false"></a> <div class="logo">
</div> <a href="{{racine}}/"><img src="images/WIKIFANTASY.png" alt="Logo" width="227px" height="106px" onmousedown="return false"></a>
<div class="user"> </div>
<img src="images/user_dark.png" alt="user" width="70px" height="70px" onmousedown="return false"> <div class="user">
</div> <img src="images/user_dark.png" alt="user" width="70px" height="70px" onmousedown="return false">
</div> </div>
</div> </div>
<h1>▶ Connexion ◀</h1> </div>
<h1>▶ Connexion ◀</h1>
<div class="login">
<p> <strong>Identifiant *</strong></p> <div class="login">
<input type="text" class="connexion" name="name" required /> <p> <strong>Identifiant *</strong></p>
<input type="text" class="connexion" name="name" required />
<p> <strong> Mot de passe *</strong></p>
<input type="password" class="connexion" name="passwd" required /> <p> <strong> Mot de passe *</strong></p>
<input type="password" class="connexion" name="passwd" required />
<div class="createAccount">
<p class="createAccount">Vous n'avez pas de compte?</p> <div class="createAccount">
<a href="/~kekentin/WF/WF-Website/signin" class="createAccount">S'incrire</a> <p class="createAccount">Vous n'avez pas de compte?</p>
</div> <a href="{{racine}}/signin" class="createAccount">S'incrire</a>
</div>
<div class="buttonSudmiteDiv">
<button class="buttonSudmite">Connexion</button> <div class="buttonSudmiteDiv">
</div> <button class="buttonSudmite">Connexion</button>
</div>
</div>
</body> </div>
</body>
</html> </html>
Loading…
Cancel
Save