diff --git a/composer.json b/composer.json
index e90580817813bf96092260f515c72b003a3601e3..5f8093ba9219ab083cd49deac5087b4d8789f72a 100644
--- a/composer.json
+++ b/composer.json
@@ -9,7 +9,9 @@
"illuminate/container": "^12.0.1",
"illuminate/support": "^12.0.1",
"twig/twig": "^3.0",
- "nesbot/carbon": "^3.8.6"
+ "nesbot/carbon": "^3.8.6",
+ "slim/twig-view": "^3.4",
+ "php-di/php-di": "^7.0"
},
"autoload":{
"psr-0":{
diff --git a/controller/Search.php b/controller/Search.php
index fc0b01edbf55d4e682dd19d539e44ba824c2d48c..db9ef048b6eb0e781097325857adb9d5754ca480 100644
--- a/controller/Search.php
+++ b/controller/Search.php
@@ -5,75 +5,89 @@ namespace controller;
use model\Annonce;
use model\Categorie;
-class Search {
+class Search
+{
- function show($twig, $menu, $chemin, $cat) {
- $template = $twig->loadTemplate("search.html.twig");
+ function show($twig, $menu, $chemin, $cat, $response)
+ {
$menu = array(
- array('href' => $chemin,
- 'text' => 'Acceuil'),
- array('href' => $chemin."/search",
- 'text' => "Recherche")
+ array(
+ 'href' => $chemin,
+ 'text' => 'Acceuil'
+ ),
+ array(
+ 'href' => $chemin . "/search",
+ 'text' => "Recherche"
+ )
);
- echo $template->render(array("breadcrumb" => $menu, "chemin" => $chemin, "categories" => $cat));
+
+ return $twig->render($response, "search.html.twig", [
+ "breadcrumb" => $menu,
+ "chemin" => $chemin,
+ "categories" => $cat
+ ]);
}
- function research($array, $twig, $menu, $chemin, $cat) {
- $template = $twig->loadTemplate("index.html.twig");
+ function research($array, $twig, $menu, $chemin, $cat, $response)
+ {
$menu = array(
- array('href' => $chemin,
- 'text' => 'Acceuil'),
- array('href' => $chemin."/search",
- 'text' => "Résultats de la recherche")
+ array(
+ 'href' => $chemin,
+ 'text' => 'Acceuil'
+ ),
+ array(
+ 'href' => $chemin . "/search",
+ 'text' => "Résultats de la recherche"
+ )
);
$nospace_mc = str_replace(' ', '', $array['motclef']);
$nospace_cp = str_replace(' ', '', $array['codepostal']);
-
$query = Annonce::select();
- if( ($nospace_mc === "") &&
+ if (($nospace_mc === "") &&
($nospace_cp === "") &&
(($array['categorie'] === "Toutes catégories" || $array['categorie'] === "-----")) &&
($array['prix-min'] === "Min") &&
- ( ($array['prix-max'] === "Max") || ($array['prix-max'] === "nolimit") ) ) {
+ (($array['prix-max'] === "Max") || ($array['prix-max'] === "nolimit"))
+ ) {
$annonce = Annonce::all();
-
} else {
// A REFAIRE SEPARER LES TRUCS
- if( ($nospace_mc !== "") ) {
- $query->where('description', 'like', '%'.$array['motclef'].'%');
+ if (($nospace_mc !== "")) {
+ $query->where('description', 'like', '%' . $array['motclef'] . '%');
}
- if( ($nospace_cp !== "") ) {
+ if (($nospace_cp !== "")) {
$query->where('ville', '=', $array['codepostal']);
}
- if ( ($array['categorie'] !== "Toutes catégories" && $array['categorie'] !== "-----") ) {
+ if (($array['categorie'] !== "Toutes catégories" && $array['categorie'] !== "-----")) {
$categ = Categorie::select('id_categorie')->where('id_categorie', '=', $array['categorie'])->first()->id_categorie;
$query->where('id_categorie', '=', $categ);
}
- if ( $array['prix-min'] !== "Min" && $array['prix-max'] !== "Max") {
- if($array['prix-max'] !== "nolimit") {
+ if ($array['prix-min'] !== "Min" && $array['prix-max'] !== "Max") {
+ if ($array['prix-max'] !== "nolimit") {
$query->whereBetween('prix', array($array['prix-min'], $array['prix-max']));
} else {
$query->where('prix', '>=', $array['prix-min']);
}
- } elseif ( $array['prix-max'] !== "Max" && $array['prix-max'] !== "nolimit") {
+ } elseif ($array['prix-max'] !== "Max" && $array['prix-max'] !== "nolimit") {
$query->where('prix', '<=', $array['prix-max']);
- } elseif ( $array['prix-min'] !== "Min" ) {
+ } elseif ($array['prix-min'] !== "Min") {
$query->where('prix', '>=', $array['prix-min']);
}
$annonce = $query->get();
}
- echo $template->render(array("breadcrumb" => $menu, "chemin" => $chemin, "annonces" => $annonce, "categories" => $cat));
-
+ return $twig->render($response, "index.html.twig", [
+ "breadcrumb" => $menu,
+ "chemin" => $chemin,
+ "annonces" => $annonce,
+ "categories" => $cat
+ ]);
}
-
}
-
-?>
\ No newline at end of file
diff --git a/controller/addItem.php b/controller/addItem.php
index deb5bed14cae34f3c512272655dd213246ffe56e..e63fc55f708181a39fab892be1193125e4e4ae49 100755
--- a/controller/addItem.php
+++ b/controller/addItem.php
@@ -5,26 +5,27 @@ namespace controller;
use model\Annonce;
use model\Annonceur;
-class addItem{
-
- function addItemView($twig, $menu, $chemin, $cat, $dpt){
-
- $template = $twig->loadTemplate("add.html.twig");
- echo $template->render(array(
- "breadcrumb" => $menu,
- "chemin" => $chemin,
- "categories" => $cat,
- "departements" => $dpt)
- );
-
+class addItem
+{
+
+ function addItemView($twig, $menu, $chemin, $cat, $dpt, $response)
+ {
+ return $twig->render($response, "add.html.twig", [
+ "breadcrumb" => $menu,
+ "chemin" => $chemin,
+ "categories" => $cat,
+ "departements" => $dpt
+ ]);
}
- function addNewItem($twig, $menu, $chemin, $allPostVars){
+ function addNewItem($twig, $menu, $chemin, $allPostVars, $response)
+ {
date_default_timezone_set('Europe/Paris');
- function isEmail($email) {
- return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
+ function isEmail($email)
+ {
+ return (preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
}
/*
@@ -56,87 +57,87 @@ class addItem{
$errors['priceAdvertiser'] = '';
$errors['passwordAdvertiser'] = '';
-// $fileInfos = $_FILES["fichier"];
-// $fileName = $fileInfos['name'];
-// $type_mime = $fileInfos['type'];
-// $taille = $fileInfos['size'];
-// $fichier_temporaire = $fileInfos['tmp_name'];
-// $code_erreur = $fileInfos['error'];
-
-
-// switch ($code_erreur){
-// case UPLOAD_ERR_OK :
-// $destination = "$chemin/upload/$fileName";
-//
-// if (move_uploaded_file($fichier_temporaire, $destination)){
-// $message = "Transfert terminé - Fichier = $nom - ";
-// $message .= "Taille = $taille octets - ";
-// $message .= "Type MIME = $type_mime";
-// } else {
-// $message = "Problème de copie sur le serveur";
-// }
-// break;
-// case UPLOAD_ERR_NO_FILE :
-// $message = "Pas de fichier saisi";
-// break;
-// case UPLOAD_ERR_INI_SIZE :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (taille > upload_max_filesize.';
-// break;
-// case UPLOAD_ERR_FORM_SIZE :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (taille > MAX_FILE_SIZE.';
-// break;
-// case UPLOAD_ERR_PARTIAL :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (problème lors du transfert';
-// break;
-// case UPLOAD_ERR_NO_TMP_DIR :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (pas de répertoire temporaire).';
-// break;
-// case UPLOAD_ERR_CANT_WRITE :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (erreur lors de l\'écriture du fichier sur disque).';
-// break;
-// case UPLOAD_ERR_EXTENSION :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (transfert stoppé par l\'extension).';
-// break;
-// default :
-// $message = "Fichier '$fileName' non transféré ";
-// $message .= ' (erreur inconnue : $code_erreur';
-// }
+ // $fileInfos = $_FILES["fichier"];
+ // $fileName = $fileInfos['name'];
+ // $type_mime = $fileInfos['type'];
+ // $taille = $fileInfos['size'];
+ // $fichier_temporaire = $fileInfos['tmp_name'];
+ // $code_erreur = $fileInfos['error'];
+
+
+ // switch ($code_erreur){
+ // case UPLOAD_ERR_OK :
+ // $destination = "$chemin/upload/$fileName";
+ //
+ // if (move_uploaded_file($fichier_temporaire, $destination)){
+ // $message = "Transfert terminé - Fichier = $nom - ";
+ // $message .= "Taille = $taille octets - ";
+ // $message .= "Type MIME = $type_mime";
+ // } else {
+ // $message = "Problème de copie sur le serveur";
+ // }
+ // break;
+ // case UPLOAD_ERR_NO_FILE :
+ // $message = "Pas de fichier saisi";
+ // break;
+ // case UPLOAD_ERR_INI_SIZE :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (taille > upload_max_filesize.';
+ // break;
+ // case UPLOAD_ERR_FORM_SIZE :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (taille > MAX_FILE_SIZE.';
+ // break;
+ // case UPLOAD_ERR_PARTIAL :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (problème lors du transfert';
+ // break;
+ // case UPLOAD_ERR_NO_TMP_DIR :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (pas de répertoire temporaire).';
+ // break;
+ // case UPLOAD_ERR_CANT_WRITE :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (erreur lors de l\'écriture du fichier sur disque).';
+ // break;
+ // case UPLOAD_ERR_EXTENSION :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (transfert stoppé par l\'extension).';
+ // break;
+ // default :
+ // $message = "Fichier '$fileName' non transféré ";
+ // $message .= ' (erreur inconnue : $code_erreur';
+ // }
// On teste que les champs ne soient pas vides et soient de bons types
- if(empty($nom)) {
+ if (empty($nom)) {
$errors['nameAdvertiser'] = 'Veuillez entrer votre nom';
}
- if(!isEmail($email)) {
+ if (!isEmail($email)) {
$errors['emailAdvertiser'] = 'Veuillez entrer une adresse mail correcte';
}
- if(empty($phone) && !is_numeric($phone) ) {
+ if (empty($phone) && !is_numeric($phone)) {
$errors['phoneAdvertiser'] = 'Veuillez entrer votre numéro de téléphone';
}
- if(empty($ville)) {
+ if (empty($ville)) {
$errors['villeAdvertiser'] = 'Veuillez entrer votre ville';
}
- if(!is_numeric($departement)) {
+ if (!is_numeric($departement)) {
$errors['departmentAdvertiser'] = 'Veuillez choisir un département';
}
- if(!is_numeric($categorie)) {
+ if (!is_numeric($categorie)) {
$errors['categorieAdvertiser'] = 'Veuillez choisir une catégorie';
}
- if(empty($title)) {
+ if (empty($title)) {
$errors['titleAdvertiser'] = 'Veuillez entrer un titre';
}
- if(empty($description)) {
+ if (empty($description)) {
$errors['descriptionAdvertiser'] = 'Veuillez entrer une description';
}
- if(empty($price) || !is_numeric($price)) {
+ if (empty($price) || !is_numeric($price)) {
$errors['priceAdvertiser'] = 'Veuillez entrer un prix';
}
- if(empty($password) || empty($password_confirm) || $password != $password_confirm) {
+ if (empty($password) || empty($password_confirm) || $password != $password_confirm) {
$errors['passwordAdvertiser'] = 'Les mots de passes ne sont pas identiques';
}
@@ -146,15 +147,14 @@ class addItem{
// S'il y a des erreurs on redirige vers la page d'erreur
if (!empty($errors)) {
- $template = $twig->loadTemplate("add-error.html.twig");
- echo $template->render(array(
- "breadcrumb" => $menu,
- "chemin" => $chemin,
- "errors" => $errors)
- );
+ return $twig->render($response, "add-error.html.twig", [
+ "breadcrumb" => $menu,
+ "chemin" => $chemin,
+ "errors" => $errors
+ ]);
}
// sinon on ajoute à la base et on redirige vers une page de succès
- else{
+ else {
$annonce = new Annonce();
$annonceur = new Annonceur();
@@ -165,7 +165,7 @@ class addItem{
$annonce->ville = htmlentities($allPostVars['ville']);
$annonce->id_departement = $allPostVars['departement'];
$annonce->prix = htmlentities($allPostVars['price']);
- $annonce->mdp = password_hash ($allPostVars['psw'], PASSWORD_DEFAULT);
+ $annonce->mdp = password_hash($allPostVars['psw'], PASSWORD_DEFAULT);
$annonce->titre = htmlentities($allPostVars['title']);
$annonce->description = htmlentities($allPostVars['description']);
$annonce->id_categorie = $allPostVars['categorie'];
@@ -176,8 +176,10 @@ class addItem{
$annonceur->annonce()->save($annonce);
- $template = $twig->loadTemplate("add-confirm.html.twig");
- echo $template->render(array("breadcrumb" => $menu, "chemin" => $chemin));
+ return $twig->render($response, "add-confirm.html.twig", [
+ "breadcrumb" => $menu,
+ "chemin" => $chemin
+ ]);
}
}
-}
\ No newline at end of file
+}
diff --git a/controller/getCategorie.php b/controller/getCategorie.php
index 6f816aae4535005ae1eca223b5706ff68909ace2..a20d6c69e37370c982a389dfc2f15649401d05c0 100644
--- a/controller/getCategorie.php
+++ b/controller/getCategorie.php
@@ -7,25 +7,29 @@ use model\Annonce;
use model\Photo;
use model\Annonceur;
-class getCategorie {
-
+class getCategorie
+{
protected $categories = array();
+ protected $annonce = array();
- public function getCategories() {
+ public function getCategories()
+ {
return Categorie::orderBy('nom_categorie')->get()->toArray();
}
- public function getCategorieContent($chemin, $n) {
- $tmp = Annonce::with("Annonceur")->orderBy('id_annonce','desc')->where('id_categorie', "=", $n)->get();
+ public function getCategorieContent($chemin, $n)
+ {
+ $tmp = Annonce::with("Annonceur")->orderBy('id_annonce', 'desc')
+ ->where('id_categorie', "=", $n)->get();
$annonce = [];
- foreach($tmp as $t) {
+ foreach ($tmp as $t) {
$t->nb_photo = Photo::where("id_annonce", "=", $t->id_annonce)->count();
- if($t->nb_photo > 0){
+ if ($t->nb_photo > 0) {
$t->url_photo = Photo::select("url_photo")
->where("id_annonce", "=", $t->id_annonce)
->first()->url_photo;
- }else{
- $t->url_photo = $chemin.'/img/noimg.png';
+ } else {
+ $t->url_photo = $chemin . '/img/noimg.png';
}
$t->nom_annonceur = Annonceur::select("nom_annonceur")
->where("id_annonceur", "=", $t->id_annonceur)
@@ -35,20 +39,26 @@ class getCategorie {
$this->annonce = $annonce;
}
- public function displayCategorie($twig, $menu, $chemin, $cat, $n) {
- $template = $twig->loadTemplate("index.html.twig");
+ public function displayCategorie($twig, $menu, $chemin, $cat, $n, $response)
+ {
$menu = array(
- array('href' => $chemin,
- 'text' => 'Acceuil'),
- array('href' => $chemin."/cat/".$n,
- 'text' => Categorie::find($n)->nom_categorie)
+ array(
+ 'href' => $chemin,
+ 'text' => 'Acceuil'
+ ),
+ array(
+ 'href' => $chemin . "/cat/" . $n,
+ 'text' => Categorie::find($n)->nom_categorie
+ )
);
$this->getCategorieContent($chemin, $n);
- echo $template->render(array(
+
+ return $twig->render($response, "index.html.twig", [
"breadcrumb" => $menu,
"chemin" => $chemin,
"categories" => $cat,
- "annonces" => $this->annonce));
+ "annonces" => $this->annonce
+ ]);
}
-}
\ No newline at end of file
+}
diff --git a/controller/index.php b/controller/index.php
index 075971a0beb083ce905e69802eff3ed11b403db8..b7c84c7df20baffb2da35dbd34be9d8b1b2f92e5 100644
--- a/controller/index.php
+++ b/controller/index.php
@@ -6,23 +6,25 @@ use model\Annonce;
use model\Photo;
use model\Annonceur;
-class index {
+class index
+{
protected $annonce = array();
- public function getAll($chemin) {
-// foreach (Annonce::with("Annonceur")->orderBy('id_annonce', 'desc')->take(12)->get(array('id_annonce', 'id_annonceur', 'id_sous_categorie', 'id_departement', 'prix', 'date', 'titre', 'ville')) as $a) {
-// array_push($this->annonce, $a->toArray());
-// }
- $tmp = Annonce::with("Annonceur")->orderBy('id_annonce','desc')->take(12)->get();
+ public function getAll($chemin)
+ {
+ // foreach (Annonce::with("Annonceur")->orderBy('id_annonce', 'desc')->take(12)->get(array('id_annonce', 'id_annonceur', 'id_sous_categorie', 'id_departement', 'prix', 'date', 'titre', 'ville')) as $a) {
+ // array_push($this->annonce, $a->toArray());
+ // }
+ $tmp = Annonce::with("Annonceur")->orderBy('id_annonce', 'desc')->take(12)->get();
$annonce = [];
- foreach($tmp as $t) {
+ foreach ($tmp as $t) {
$t->nb_photo = Photo::where("id_annonce", "=", $t->id_annonce)->count();
- if($t->nb_photo > 0){
+ if ($t->nb_photo > 0) {
$t->url_photo = Photo::select("url_photo")
->where("id_annonce", "=", $t->id_annonce)
->first()->url_photo;
- }else{
- $t->url_photo = $chemin.'/img/noimg.png';
+ } else {
+ $t->url_photo = $chemin . '/img/noimg.png';
}
$t->nom_annonceur = Annonceur::select("nom_annonceur")
->where("id_annonceur", "=", $t->id_annonceur)
@@ -32,18 +34,15 @@ class index {
$this->annonce = $annonce;
}
- public function displayAllAnnonce($twig, $menu, $chemin, $cat) {
- $template = $twig->loadTemplate("index.html.twig");
- $menu = array(
- array('href' => $chemin,
- 'text' => 'Acceuil'),
- );
-
+ public function displayAllAnnonce($twig, $menu, $chemin, $cat, $response)
+ {
$this->getAll($chemin);
- echo $template->render(array(
+
+ return $twig->render($response, 'index.html.twig', [
"breadcrumb" => $menu,
"chemin" => $chemin,
"categories" => $cat,
- "annonces" => $this->annonce));
+ "annonces" => $this->annonce
+ ]);
}
-}
\ No newline at end of file
+}
diff --git a/controller/item.php b/controller/item.php
index 83812104ea953a2b8420e79137add103662920f9..9ad49c6827c1203e103d3e981cb9afa71bbc7edf 100644
--- a/controller/item.php
+++ b/controller/item.php
@@ -1,102 +1,130 @@
<?php
namespace controller;
+
use model\Annonce;
use model\Annonceur;
use model\Departement;
use model\Photo;
use model\Categorie;
-class item {
- public function __construct(){
- }
- function afficherItem($twig, $menu, $chemin, $n, $cat) {
-
+class item
+{
+ protected $annonce;
+ protected $annonceur;
+ protected $departement;
+ protected $photo;
+ protected $categItem;
+ protected $dptItem;
+
+ function afficherItem($twig, $menu, $chemin, $n, $cat, $response)
+ {
$this->annonce = Annonce::find($n);
- if(!isset($this->annonce)){
- echo "404";
- return;
+ if (!isset($this->annonce)) {
+ return $response->withStatus(404);
+ }
+
+ $categorie = Categorie::find($this->annonce->id_categorie);
+ if (!$categorie) {
+ return $response->withStatus(404);
}
$menu = array(
- array('href' => $chemin,
- 'text' => 'Acceuil'),
- array('href' => $chemin."/cat/".$n,
- 'text' => Categorie::find($this->annonce->id_categorie)->nom_categorie),
- array('href' => $chemin."/item/".$n,
- 'text' => $this->annonce->titre)
+ array(
+ 'href' => $chemin,
+ 'text' => 'Acceuil'
+ ),
+ array(
+ 'href' => $chemin . "/cat/" . $n,
+ 'text' => $categorie->nom_categorie
+ ),
+ array(
+ 'href' => $chemin . "/item/" . $n,
+ 'text' => $this->annonce->titre
+ )
);
$this->annonceur = Annonceur::find($this->annonce->id_annonceur);
- $this->departement = Departement::find($this->annonce->id_departement );
+ $this->departement = Departement::find($this->annonce->id_departement);
$this->photo = Photo::where('id_annonce', '=', $n)->get();
- $template = $twig->loadTemplate("item.html.twig");
- echo $template->render(array("breadcrumb" => $menu,
+
+ return $twig->render($response, "item.html.twig", [
+ "breadcrumb" => $menu,
"chemin" => $chemin,
"annonce" => $this->annonce,
"annonceur" => $this->annonceur,
"dep" => $this->departement->nom_departement,
"photo" => $this->photo,
- "categories" => $cat));
+ "categories" => $cat
+ ]);
}
- function supprimerItemGet($twig, $menu, $chemin,$n){
+ function supprimerItemGet($twig, $menu, $chemin, $n)
+ {
$this->annonce = Annonce::find($n);
- if(!isset($this->annonce)){
+ if (!isset($this->annonce)) {
echo "404";
return;
}
$template = $twig->loadTemplate("delGet.html.twig");
- echo $template->render(array("breadcrumb" => $menu,
+ echo $template->render(array(
+ "breadcrumb" => $menu,
"chemin" => $chemin,
- "annonce" => $this->annonce));
+ "annonce" => $this->annonce
+ ));
}
- function supprimerItemPost($twig, $menu, $chemin, $n, $cat){
+ function supprimerItemPost($twig, $menu, $chemin, $n, $cat)
+ {
$this->annonce = Annonce::find($n);
$reponse = false;
- if(password_verify($_POST["pass"],$this->annonce->mdp)){
+ if (password_verify($_POST["pass"], $this->annonce->mdp)) {
$reponse = true;
photo::where('id_annonce', '=', $n)->delete();
$this->annonce->delete();
-
}
$template = $twig->loadTemplate("delPost.html.twig");
- echo $template->render(array("breadcrumb" => $menu,
+ echo $template->render(array(
+ "breadcrumb" => $menu,
"chemin" => $chemin,
"annonce" => $this->annonce,
"pass" => $reponse,
- "categories" => $cat));
+ "categories" => $cat
+ ));
}
- function modifyGet($twig, $menu, $chemin, $id){
+ function modifyGet($twig, $menu, $chemin, $id)
+ {
$this->annonce = Annonce::find($id);
- if(!isset($this->annonce)){
+ if (!isset($this->annonce)) {
echo "404";
return;
}
$template = $twig->loadTemplate("modifyGet.html.twig");
- echo $template->render(array("breadcrumb" => $menu,
+ echo $template->render(array(
+ "breadcrumb" => $menu,
"chemin" => $chemin,
- "annonce" => $this->annonce));
+ "annonce" => $this->annonce
+ ));
}
- function modifyPost($twig, $menu, $chemin, $n, $cat, $dpt){
+ function modifyPost($twig, $menu, $chemin, $n, $cat, $dpt)
+ {
$this->annonce = Annonce::find($n);
$this->annonceur = Annonceur::find($this->annonce->id_annonceur);
$this->categItem = Categorie::find($this->annonce->id_categorie)->nom_categorie;
$this->dptItem = Departement::find($this->annonce->id_departement)->nom_departement;
$reponse = false;
- if(password_verify($_POST["pass"],$this->annonce->mdp)){
+ if (password_verify($_POST["pass"], $this->annonce->mdp)) {
$reponse = true;
-
}
$template = $twig->loadTemplate("modifyPost.html.twig");
- echo $template->render(array("breadcrumb" => $menu,
+ echo $template->render(array(
+ "breadcrumb" => $menu,
"chemin" => $chemin,
"annonce" => $this->annonce,
"annonceur" => $this->annonceur,
@@ -104,15 +132,18 @@ class item {
"categories" => $cat,
"departements" => $dpt,
"dptItem" => $this->dptItem,
- "categItem" => $this->categItem));
+ "categItem" => $this->categItem
+ ));
}
- function edit($twig, $menu, $chemin, $allPostVars, $id){
+ function edit($twig, $menu, $chemin, $allPostVars, $id)
+ {
date_default_timezone_set('Europe/Paris');
- function isEmail($email) {
- return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
+ function isEmail($email)
+ {
+ return (preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
}
/*
@@ -144,31 +175,31 @@ class item {
// On teste que les champs ne soient pas vides et soient de bons types
- if(empty($nom)) {
+ if (empty($nom)) {
$errors['nameAdvertiser'] = 'Veuillez entrer votre nom';
}
- if(!isEmail($email)) {
+ if (!isEmail($email)) {
$errors['emailAdvertiser'] = 'Veuillez entrer une adresse mail correcte';
}
- if(empty($phone) && !is_numeric($phone) ) {
+ if (empty($phone) && !is_numeric($phone)) {
$errors['phoneAdvertiser'] = 'Veuillez entrer votre numéro de téléphone';
}
- if(empty($ville)) {
+ if (empty($ville)) {
$errors['villeAdvertiser'] = 'Veuillez entrer votre ville';
}
- if(!is_numeric($departement)) {
+ if (!is_numeric($departement)) {
$errors['departmentAdvertiser'] = 'Veuillez choisir un département';
}
- if(!is_numeric($categorie)) {
+ if (!is_numeric($categorie)) {
$errors['categorieAdvertiser'] = 'Veuillez choisir une catégorie';
}
- if(empty($title)) {
+ if (empty($title)) {
$errors['titleAdvertiser'] = 'Veuillez entrer un titre';
}
- if(empty($description)) {
+ if (empty($description)) {
$errors['descriptionAdvertiser'] = 'Veuillez entrer une description';
}
- if(empty($price) || !is_numeric($price)) {
+ if (empty($price) || !is_numeric($price)) {
$errors['priceAdvertiser'] = 'Veuillez entrer un prix';
}
@@ -179,14 +210,16 @@ class item {
if (!empty($errors)) {
$template = $twig->loadTemplate("add-error.html.twig");
- echo $template->render(array(
+ echo $template->render(
+ array(
"breadcrumb" => $menu,
"chemin" => $chemin,
- "errors" => $errors)
+ "errors" => $errors
+ )
);
}
// sinon on ajoute à la base et on redirige vers une page de succès
- else{
+ else {
$this->annonce = Annonce::find($id);
$idannonceur = $this->annonce->id_annonceur;
$this->annonceur = Annonceur::find($idannonceur);
@@ -198,7 +231,7 @@ class item {
$this->annonce->ville = htmlentities($allPostVars['ville']);
$this->annonce->id_departement = $allPostVars['departement'];
$this->annonce->prix = htmlentities($allPostVars['price']);
- $this->annonce->mdp = password_hash ($allPostVars['psw'], PASSWORD_DEFAULT);
+ $this->annonce->mdp = password_hash($allPostVars['psw'], PASSWORD_DEFAULT);
$this->annonce->titre = htmlentities($allPostVars['title']);
$this->annonce->description = htmlentities($allPostVars['description']);
$this->annonce->id_categorie = $allPostVars['categorie'];
diff --git a/index.php b/index.php
index 9913d6c73e8705c6955aed17d363b1af37cc72f7..f43e963af254f05349ab8d7c2e41aa770bfdf172 100644
--- a/index.php
+++ b/index.php
@@ -1,10 +1,10 @@
<?php
require 'vendor/autoload.php';
-use db\connection;
-
-use Slim\Extras\Middleware\CsrfGuard;
-use Illuminate\Database\Query\Expression as raw;
+use db\connection;
+use Slim\Factory\AppFactory;
+use Slim\Views\Twig;
+use Slim\Views\TwigMiddleware;
use model\Annonce;
use model\Categorie;
use model\Annonceur;
@@ -13,155 +13,231 @@ use model\Departement;
connection::createConn();
+session_start();
-$app = new \Slim\Slim(array(
- 'mode' => 'development'
-));
+// Create Container
+$container = new \DI\Container();
-if (!isset($_SESSION)) {
- session_start();
- $_SESSION['formStarted'] = true;
-}
+// Set view in container
+$container->set('view', function () {
+ $twig = Twig::create('template', [
+ 'cache' => false,
+ 'debug' => true,
+ 'auto_reload' => true
+ ]);
+ return $twig;
+});
+
+// Create app
+AppFactory::setContainer($container);
+$app = AppFactory::create();
+// Add routing middleware
+$app->addRoutingMiddleware();
+$app->addErrorMiddleware(true, true, true);
+
+// Add Twig middleware
+$app->add(TwigMiddleware::createFromContainer($app));
+
+// Initialize controllers
+$cat = new \controller\getCategorie();
+$dpt = new \controller\getDepartment();
+
+// Token handling
if (!isset($_SESSION['token'])) {
$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
$_SESSION['token_time'] = time();
-} else {
- $token = $_SESSION['token'];
}
-//$app->add(new CsrfGuard());
-
-$loader = new Twig_Loader_Filesystem('template');
-$twig = new Twig_Environment($loader);
-
$menu = array(
- array('href' => "./index.php",
- 'text' => 'Accueil')
+ array(
+ 'href' => "./index.php",
+ 'text' => 'Accueil'
+ )
);
$chemin = dirname($_SERVER['SCRIPT_NAME']);
-$cat = new \controller\getCategorie();
-$dpt = new \controller\getDepartment();
-
-$app->get('/', function () use ($twig, $menu, $chemin, $cat) {
+$app->get('/', function ($request, $response, $args) use ($container, $menu, $cat) {
$index = new \controller\index();
- $index->displayAllAnnonce($twig, $menu, $chemin, $cat->getCategories());
+ $chemin = dirname($_SERVER['SCRIPT_NAME']);
+
+ return $index->displayAllAnnonce(
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $cat->getCategories(),
+ $response
+ );
});
-$app->get('/item/:n', function ($n) use ($twig, $menu, $chemin, $cat) {
+$app->get('/item/{n}', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
$item = new \controller\item();
- $item->afficherItem($twig, $menu, $chemin, $n, $cat->getCategories());
+ return $item->afficherItem(
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $args['n'],
+ $cat->getCategories(),
+ $response
+ );
});
-$app->get('/add/', function () use ($twig, $app, $menu, $chemin, $cat, $dpt) {
-
- $ajout = new controller\addItem();
- $ajout->addItemView($twig, $menu, $chemin, $cat->getCategories(), $dpt->getAllDepartments());
-
+$app->get('/add', function ($request, $response, $args) use ($container, $menu, $chemin, $cat, $dpt) {
+ $ajout = new \controller\addItem();
+ return $ajout->addItemView(
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $cat->getCategories(),
+ $dpt->getAllDepartments(),
+ $response
+ );
});
-$app->post('/add/', function () use ($twig, $app, $menu, $chemin) {
-
- $allPostVars = $app->request->post();
- $ajout = new controller\addItem();
- $ajout->addNewItem($twig, $menu, $chemin, $allPostVars);
+$app->post('/add', function ($request, $response, $args) use ($container, $menu, $chemin) {
+ $allPostVars = $request->getParsedBody();
+ $ajout = new \controller\addItem();
+ return $ajout->addNewItem(
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $allPostVars,
+ $response
+ );
});
-$app->get('/item/:id/edit', function ($id) use ($twig, $menu, $chemin) {
+$app->get('/item/{id}/edit', function ($request, $response, $args) use ($container, $menu, $chemin) {
$item = new \controller\item();
- $item->modifyGet($twig,$menu,$chemin, $id);
+ $item->modifyGet($container->get('view'), $menu, $chemin, $args['id']);
+ return $response;
});
-$app->post('/item/:id/edit', function ($id) use ($twig, $app, $menu, $chemin, $cat, $dpt) {
- $allPostVars = $app->request->post();
- $item= new \controller\item();
- $item->modifyPost($twig,$menu,$chemin, $id, $allPostVars, $cat->getCategories(), $dpt->getAllDepartments());
+$app->post('/item/{id}/edit', function ($request, $response, $args) use ($container, $menu, $chemin, $cat, $dpt) {
+ $allPostVars = $request->getParsedBody();
+ $item = new \controller\item();
+ $item->modifyPost($container->get('view'), $menu, $chemin, $args['id'], $allPostVars, $cat->getCategories(), $dpt->getAllDepartments());
+ return $response;
});
-$app->map('/item/:id/confirm', function ($id) use ($twig, $app, $menu, $chemin) {
- $allPostVars = $app->request->post();
+$app->map(['GET', 'POST'], '/item/{id}/confirm', function ($request, $response, $args) use ($container, $menu, $chemin) {
+ $allPostVars = $request->getParsedBody();
$item = new \controller\item();
- $item->edit($twig,$menu,$chemin, $id, $allPostVars);
-})->name('confirm')->via('GET', 'POST');
-
-$app->get('/search/', function () use ($twig, $menu, $chemin, $cat) {
- $s = new controller\Search();
- $s->show($twig, $menu, $chemin, $cat->getCategories());
+ $item->edit($container->get('view'), $menu, $chemin, $args['id'], $allPostVars);
+ return $response;
+})->setName('confirm');
+
+$app->get('/search', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $s = new \controller\Search();
+ return $s->show(
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $cat->getCategories(),
+ $response
+ );
});
-
-$app->post('/search/', function () use ($app, $twig, $menu, $chemin, $cat) {
- $array = $app->request->post();
-
- $s = new controller\Search();
- $s->research($array, $twig, $menu, $chemin, $cat->getCategories());
-
+$app->post('/search', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $array = $request->getParsedBody();
+ $s = new \controller\Search();
+ return $s->research(
+ $array,
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $cat->getCategories(),
+ $response
+ );
});
-$app->get('/annonceur/:n', function ($n) use ($twig, $menu, $chemin, $cat) {
- $annonceur = new controller\viewAnnonceur();
- $annonceur->afficherAnnonceur($twig, $menu, $chemin, $n, $cat->getCategories());
+$app->get('/annonceur/{n}', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $annonceur = new \controller\viewAnnonceur();
+ $annonceur->afficherAnnonceur($container->get('view'), $menu, $chemin, $args['n'], $cat->getCategories());
+ return $response;
});
-$app->get('/del/:n', function ($n) use ($twig, $menu, $chemin) {
- $item = new controller\item();
- $item->supprimerItemGet($twig, $menu, $chemin, $n);
+$app->get('/del/{n}', function ($request, $response, $args) use ($container, $menu, $chemin) {
+ $item = new \controller\item();
+ $item->supprimerItemGet($container->get('view'), $menu, $chemin, $args['n']);
+ return $response;
});
-$app->post('/del/:n', function ($n) use ($twig, $menu, $chemin, $cat) {
- $item = new controller\item();
- $item->supprimerItemPost($twig, $menu, $chemin, $n, $cat->getCategories());
+$app->post('/del/{n}', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $item = new \controller\item();
+ $item->supprimerItemPost($container->get('view'), $menu, $chemin, $args['n'], $cat->getCategories());
+ return $response;
});
-$app->get('/cat/:n', function ($n) use ($twig, $menu, $chemin, $cat) {
- $categorie = new controller\getCategorie();
- $categorie->displayCategorie($twig, $menu, $chemin, $cat->getCategories(), $n);
+$app->get('/cat/{n}', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $categorie = new \controller\getCategorie();
+ return $categorie->displayCategorie(
+ $container->get('view'),
+ $menu,
+ $chemin,
+ $cat->getCategories(),
+ $args['n'],
+ $response
+ );
});
-$app->get('/api(/)', function () use ($twig, $menu, $chemin, $cat) {
- $template = $twig->loadTemplate("api.html.twig");
+$app->get('/api[/]', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $template = $container->get('view')->load("api.html.twig");
$menu = array(
- array('href' => $chemin,
- 'text' => 'Acceuil'),
- array('href' => $chemin . '/api',
- 'text' => 'Api')
+ array(
+ 'href' => $chemin,
+ 'text' => 'Acceuil'
+ ),
+ array(
+ 'href' => $chemin . '/api',
+ 'text' => 'Api'
+ )
);
- echo $template->render(array("breadcrumb" => $menu, "chemin" => $chemin));
+ $response->getBody()->write($template->render(array(
+ "breadcrumb" => $menu,
+ "chemin" => $chemin
+ )));
+ return $response;
});
-$app->group('/api', function () use ($app, $twig, $menu, $chemin, $cat) {
-
- $app->group('/annonce', function () use ($app) {
-
- $app->get('/:id', function ($id) use ($app) {
- $annonceList = ['id_annonce', 'id_categorie as categorie', 'id_annonceur as annonceur', 'id_departement as departement', 'prix', 'date', 'titre', 'description', 'ville'];
- $return = Annonce::select($annonceList)->find($id);
+$app->group('/api', function ($app) use ($container, $menu, $chemin, $cat) {
+
+ $app->group('/annonce', function ($app) use ($container) {
+ $app->get('/{id}', function ($request, $response, $args) use ($container) {
+ $annonceList = [
+ 'id_annonce',
+ 'id_categorie as categorie',
+ 'id_annonceur as annonceur',
+ 'id_departement as departement',
+ 'prix',
+ 'date',
+ 'titre',
+ 'description',
+ 'ville'
+ ];
+ $return = Annonce::select($annonceList)->find($args['id']);
if (isset($return)) {
- $app->response->headers->set('Content-Type', 'application/json');
+ $response = $response->withHeader('Content-Type', 'application/json');
$return->categorie = Categorie::find($return->categorie);
$return->annonceur = Annonceur::select('email', 'nom_annonceur', 'telephone')
->find($return->annonceur);
- $return->departement = Departement::select('id_departement', 'nom_departement')->find($return->departement);
- $links = [];
- $links["self"]["href"] = "/api/annonce/" . $return->id_annonce;
- $return->links = $links;
- echo $return->toJson();
- } else {
- $app->notFound();
+ $return->departement = Departement::select('id_departement', 'nom_departement')
+ ->find($return->departement);
+ $return->links = ["self" => ["href" => "/api/annonce/" . $return->id_annonce]];
+ return $response->write($return->toJson());
}
+ return $response->withStatus(404);
});
});
- $app->group('/annonces(/)', function () use ($app) {
-
- $app->get('/', function () use ($app) {
+ $app->group('/annonces', function ($app) use ($container) {
+ $app->get('', function ($request, $response, $args) {
$annonceList = ['id_annonce', 'prix', 'titre', 'ville'];
- $app->response->headers->set('Content-Type', 'application/json');
+ $response = $response->withHeader('Content-Type', 'application/json');
+
$a = Annonce::all($annonceList);
$links = [];
foreach ($a as $ann) {
@@ -170,17 +246,17 @@ $app->group('/api', function () use ($app, $twig, $menu, $chemin, $cat) {
}
$links["self"]["href"] = "/api/annonces/";
$a->links = $links;
- echo $a->toJson();
+
+ return $response->write($a->toJson());
});
});
+ $app->group('/categorie', function ($app) use ($container) {
+ $app->get('/{id}', function ($request, $response, $args) {
+ $response = $response->withHeader('Content-Type', 'application/json');
- $app->group('/categorie', function () use ($app) {
-
- $app->get('/:id', function ($id) use ($app) {
- $app->response->headers->set('Content-Type', 'application/json');
$a = Annonce::select('id_annonce', 'prix', 'titre', 'ville')
- ->where("id_categorie", "=", $id)
+ ->where("id_categorie", "=", $args['id'])
->get();
$links = [];
@@ -189,40 +265,42 @@ $app->group('/api', function () use ($app, $twig, $menu, $chemin, $cat) {
$ann->links = $links;
}
- $c = Categorie::find($id);
- $links["self"]["href"] = "/api/categorie/" . $id;
+ $c = Categorie::find($args['id']);
+ if (!$c) {
+ return $response->withStatus(404);
+ }
+
+ $links["self"]["href"] = "/api/categorie/" . $args['id'];
$c->links = $links;
$c->annonces = $a;
- echo $c->toJson();
+
+ return $response->write($c->toJson());
});
});
- $app->group('/categories(/)', function () use ($app) {
- $app->get('/', function () use ($app) {
- $app->response->headers->set('Content-Type', 'application/json');
-// $c = Categorie::all(["id_categorie", "nom_categorie"]);
- $c = Categorie::get();
- $links = [];
- foreach ($c as $cat) {
- $links["self"]["href"] = "/api/categorie/" . $cat->id_categorie;
- $cat->links = $links;
+ $app->group('/categories', function ($app) use ($container) {
+ $app->get('', function ($request, $response, $args) use ($container) {
+ $response = $response->withHeader('Content-Type', 'application/json');
+ $categories = Categorie::get();
+ foreach ($categories as $cat) {
+ $cat->links = ["self" => ["href" => "/api/categorie/" . $cat->id_categorie]];
}
- $links["self"]["href"] = "/api/categories/";
- $c->links = $links;
- echo $c->toJson();
+ $categories->links = ["self" => ["href" => "/api/categories/"]];
+ return $response->write($categories->toJson());
});
});
- $app->get('/key', function() use ($app, $twig, $menu, $chemin, $cat) {
- $kg = new controller\KeyGenerator();
- $kg->show($twig, $menu, $chemin, $cat->getCategories());
+ $app->get('/key', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $kg = new \controller\KeyGenerator();
+ $kg->show($container->get('view'), $menu, $chemin, $cat->getCategories());
+ return $response;
});
- $app->post('/key', function() use ($app, $twig, $menu, $chemin, $cat) {
- $nom = $_POST['nom'];
-
- $kg = new controller\KeyGenerator();
- $kg->generateKey($twig, $menu, $chemin, $cat->getCategories(), $nom);
+ $app->post('/key', function ($request, $response, $args) use ($container, $menu, $chemin, $cat) {
+ $allPostVars = $request->getParsedBody();
+ $kg = new \controller\KeyGenerator();
+ $kg->generateKey($container->get('view'), $menu, $chemin, $cat->getCategories(), $allPostVars['nom']);
+ return $response;
});
});