public function run()
 {
     $faker = Faker::create();
     foreach (range(1, 10) as $index) {
         Recette::create([]);
     }
 }
 public function ajouter_recette(Recette $r)
 {
     $this->db->set('id_utilisateur', $r->id_utilisateur());
     $this->db->set('id_categorie', $r->id_categorie());
     $this->db->set('id_sous_categorie', $r->id_sous_categorie());
     $this->db->set('titre', $r->titre());
     $this->db->set('nombre_personnes', $r->nombre_personnes());
     $this->db->set('categorie_prix', $r->categorie_prix());
     $this->db->set('categorie_difficulte', $r->categorie_difficulte());
     $this->db->set('duree', $r->duree());
     $this->db->set('photo', $r->photo());
     $this->db->set('description', $r->description());
     $this->db->set('slug', $r->slug());
     $this->db->insert($this->table);
     $insert_id = $this->db->insert_id();
     return $insert_id;
 }
Example #3
0
});
$app->post('/addRecette', function () {
    //Ajoute une recette
    $recette = Recette::addRecette($_POST['nomRecette'], $_POST['complexite'], $_POST['note'], $_POST['temps'], $_POST['nbPersonne'], $_POST['description']);
});
$app->post('/addRecette_ingr', function () {
    //Ajoute une recette
    $recette = Recette::addRecette_ingr($_POST['ingredientId'], $_POST['recetteId'], $_POST['quantite']);
});
$app->put('/ModifRecette', function () {
    //Ajoute une recette
    $recette = Recette::ModifRecette($_POST['nomRecette'], $_POST['complexite'], $_POST['note'], $_POST['temps'], $_POST['nbPersonne'], $_POST['description'], $_POST['id']);
});
$app->delete('/DelRecette', function () {
    //Ajoute une recette
    $recette = Recette::DelRecette($_POST['id']);
});
$app->run();
?>











        $ar = array('*' => ' ');
        foreach ($mesRecettes as $val) {
            $ar[$val['idrecette']] = $val['libelle'];
        }
        return $ar;
    }
    function lireResultatSuppression($listeRecettesSupprimees)
    {
        $listeIngredients = '';
        foreach ($listeRecettesSupprimees as $key => $val) {
            $listeIngredients .= '<li>';
            $listeIngredients .= $val;
            $listeIngredients .= '</li>';
        }
        return $listeIngredients;
    }
}
$suppressionRecette = new SuppressionRecette();
$menu = $menuRecette;
if (isset($_POST['buttonSuppressionRecette'])) {
    if (isset($_POST['listeRecette'])) {
        $listeRecetteRecue = $_POST['listeRecette'];
        $listeRecettesSupprimees = array();
        $recette = new Recette();
        foreach ($listeRecetteRecue as $idRecetterecue) {
            $listeRecettesSupprimees[$idRecetterecue] = $suppressionRecette->listeRecettes[$idRecetterecue];
            $recette->supprimerRecette($idRecetterecue, $suppressionRecette->DB);
        }
    }
}
$suppressionRecette->listeRecettes = $suppressionRecette->getListeRecettes();
 /**
  * Display the specified resource.
  * GET /recettes/{id}
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $recette = Recette::find($id);
     // On ajoute le pays pour la recette.
     $recette['country'] = array();
     $countries = Country::where('id', '=', $recette['idPays'])->firstOrFail();
     $recette['country'] = $countries->nom;
     // On ajoute les auteurs pour la recette.
     $recette['authors'] = array();
     $listIdauthors = DB::table('link_recette_author')->where('idRecette', '=', $recette['id'])->lists('idAutheur');
     // On recherche les id de tous les auteurs de la recette
     $autheurs = Autheur::whereIn('id', $listIdauthors)->lists('nom');
     // on recherche tous les noms des auteurs de la recette.
     $recette['authors'] = $autheurs;
     // On ajoute les catégories pour la recette.
     $recette['categories'] = array();
     $listIdcategories = DB::table('link_recette_categorie')->where('idRecette', '=', $recette['id'])->lists('idCategorie');
     $categories = Categorie::whereIn('id', $listIdcategories)->lists('nom');
     $recette['categories'] = $categories;
     // On ajoute les photos pour chaque recette.
     $recette['photos'] = array();
     $listIdphotos = DB::table('link_recette_photo')->where('idRecette', '=', $recette['id'])->lists('idPhoto');
     $photos = Photo::whereIn('id', $listIdphotos)->lists('nom');
     $recette['photos'] = $photos;
     // On ajoute la liste de chaque categorie d'ingredients pour chaque recette.
     $recette['ingredients'] = array();
     $listIdCategorieIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->distinct()->lists('idCategorie');
     $listIdIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->lists('idIngredient');
     $listQuantIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->lists('idQuantite');
     $listOrdreIngred = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->lists('Ordre');
     // On met dans un tableau le nombre d'ingredient par categorie
     $listNbrIngrParCat = array();
     foreach ($listIdCategorieIngred as $idCatIngre) {
         $listNbrIngrParCat[sizeof($listNbrIngrParCat)] = DB::table('link_recette_ingred')->where('idRecette', '=', $recette['id'])->where('idCategorie', '=', $idCatIngre)->distinct()->count();
     }
     //On récupère le nom des catégories.
     $nomsCatIngredients = CategorieIngredient::whereIn('id', $listIdCategorieIngred)->lists('nom');
     $ingredients = array();
     foreach ($listIdIngred as $idIngredCurrent) {
         $ing = Ingredient::where('id', '=', $idIngredCurrent)->firstOrFail();
         array_push($ingredients, $ing->nom);
     }
     $ingredientsFinal = array();
     for ($j = 0; $j < sizeof($listIdCategorieIngred); $j++) {
         $ingredientsArray = array();
         $offset = 0;
         // on a créé un décalage pour parcourir la lsite des ingrédients.
         if ($j != 0) {
             $offset = $listNbrIngrParCat[$j - 1];
         }
         for ($i = 0 + $offset; $i < $listNbrIngrParCat[$j] + $offset; $i++) {
             $ingredientsArray[$i] = array('Ordre' => $listOrdreIngred[$i], 'Ingredient' => $ingredients[$i], 'lien' => "");
         }
         $ingredientsFinal[$j] = array('Titre' => $nomsCatIngredients[$j], 'DetailsIngre' => $ingredientsArray);
     }
     $recette['ingredients'] = $ingredientsFinal;
     // On ajoute la liste de chaque categorie de préparations pour la recette.
     $recette['preparations'] = array();
     $listIdCategoriePrepa = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->distinct()->lists('idCatPrepa');
     $listIdPhrasePrepa = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->lists('idPhrasePrepa');
     $listOrdrePhrase = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->lists('Ordre');
     // On met dans un tableau le nombre de phrase de préparation par categorie
     $listNbrPhraseParCat = array();
     foreach ($listIdCategoriePrepa as $idCatPrepa) {
         $listNbrPhraseParCat[sizeof($listNbrPhraseParCat)] = DB::table('link_recette_preparation')->where('idRecette', '=', $recette['id'])->where('idCatPrepa', '=', $idCatPrepa)->distinct()->count();
     }
     //On récupère le nom des catégories de préparation.
     $nomsCatPhrase = CategoriePrepa::whereIn('id', $listIdPhrasePrepa)->lists('nom');
     $phrases = array();
     foreach ($listIdPhrasePrepa as $idPhrasePrepaCurrent) {
         $phrase = PhrasePrepa::where('id', '=', $idPhrasePrepaCurrent)->firstOrFail();
         array_push($phrases, $phrase->phrase);
     }
     $phrasesFinal = array();
     for ($j = 0; $j < sizeof($listIdCategoriePrepa); $j++) {
         $phrasesArray = array();
         $offset = 0;
         // on a créé un décalage pour parcourir la lsite des ingrédients.
         if ($j != 0) {
             $offset = $listNbrPhraseParCat[$j - 1];
         }
         for ($i = 0 + $offset; $i < $listNbrPhraseParCat[$j] + $offset; $i++) {
             $phrasesArray[$i] = array('Ordre' => $listOrdrePhrase[$i], 'Phrase' => $phrases[$i]);
         }
         $phrasesFinal[$j] = array('Titre' => $nomsCatPhrase[$j], 'Phrases' => $phrasesArray);
     }
     $recette['preparations'] = $phrasesFinal;
     return Response::json($recette);
 }
 public function ajouter_recette()
 {
     if (!is_connected()) {
         $this->load->model('CategorieManager');
         $categorieManager = new CategorieManager();
         $categories = $categorieManager->get_categories();
         $data = array();
         $data['categories'] = $categories;
         $data['active'] = "ajouter_recette";
         $data['menu_categories'] = $this->menu_categories;
         $this->layout->view('information_ajouter_recette', $data);
     } else {
         $this->load->helper('form');
         $this->load->library('form_validation');
         // On fixe les règles concernant l'ajout d'une recette :
         $this->form_validation->set_rules('titre', '"Titre de la recette"', 'trim|required|encode_php_tags');
         $this->form_validation->set_rules('categorie', '"Nom de la catégorie"', 'trim|required|encode_php_tags');
         $this->form_validation->set_rules('sous_categorie', '"Nom de la sous_catégorie"', 'trim|encode_php_tags');
         $compteur_ingredients = (int) $this->input->post('nb_ingredients');
         for ($i = 1; $i <= $compteur_ingredients; $i++) {
             $this->form_validation->set_rules('ingredient_' . $i, '"Nom de l\'ingrédient"', 'trim|required|encode_php_tags');
             $this->form_validation->set_rules('quantite_' . $i, '"Quantité de l\'ingrédient"', 'trim|required|encode_php_tags');
         }
         $this->form_validation->set_rules('preparation', '"Préparation de la recette"', 'trim|required|encode_php_tags');
         $this->form_validation->set_rules('nb_personnes', '"Nombre de personnes"', 'trim|required|encode_php_tags');
         $this->form_validation->set_rules('duree', '"Durée de la recette"', 'trim|required|encode_php_tags');
         $this->form_validation->set_rules('prix', '"Catégorie de prix"', 'trim|required|encode_php_tags');
         $this->form_validation->set_rules('difficulte', '"Catégorie de difficulté"', 'trim|required|encode_php_tags');
         // On contrôle l'upload de la photo :
         $config['upload_path'] = './assets/images/recettes/';
         $config['allowed_types'] = 'gif|jpg|png';
         $config['max_size'] = '2048';
         $config['max_width'] = '2000';
         $config['max_height'] = '2000';
         $this->load->library('upload', $config);
         if ($this->form_validation->run()) {
             // Le formulaire est valide
             // On teste si une photo a été envoyée
             if ($_FILES['photo']['name'] == null) {
                 // Ici le formulaire est valide mais aucune photo n'a été envoyée
                 $this->load->library('Recette');
                 $this->load->library('Utilisateur');
                 $this->load->library('Categorie');
                 $this->load->model('CategorieManager');
                 $this->load->model('RecetteManager');
                 $this->load->model('UtilisateurManager');
                 $this->load->model('IngredientManager');
                 $this->load->model('IngredientRecetteManager');
                 // On récupère l'id de l'utilisateur :
                 $utilisateurManager = new UtilisateurManager();
                 $id_utilisateur = $utilisateurManager->get_id($_SESSION['login'])->id_utilisateur;
                 // On récupère l'id de la catégorie :
                 $id_sous_categorie = null;
                 $categorieManager = new CategorieManager();
                 $id_categorie = $categorieManager->get_id($this->input->post('categorie'))->id_categorie;
                 // On récupère l'id de la sous_catégorie (s'il n'est pas null):
                 if ($this->input->post('sous_categorie') != null) {
                     $id_sous_categorie = $categorieManager->get_id($this->input->post('sous_categorie'))->id_categorie;
                 }
                 // On instancie un objet recette
                 $recette = new Recette();
                 $recette->setId_utilisateur($id_utilisateur);
                 $recette->setId_categorie($id_categorie);
                 $recette->setId_sous_categorie($id_sous_categorie);
                 $recette->setTitre($this->input->post('titre'));
                 $recette->setNombre_personnes($this->input->post('nb_personnes'));
                 $recette->setCategorie_prix($this->input->post('prix'));
                 $recette->setCategorie_difficulte($this->input->post('difficulte'));
                 $recette->setDuree($this->input->post('duree'));
                 $recette->setDescription($this->input->post('preparation'));
                 $recette->setPhoto('defaut.jpg');
                 $slug = url_title($recette->titre());
                 $recette->setSlug($slug);
                 // On ajoute la recette en bdd et on récupère son id :
                 $recetteManager = new RecetteManager();
                 $id_recette = $recetteManager->ajouter_recette($recette);
                 // Ici on s'occuppe des ingrédients !
                 $nb_ingredients = (int) $this->input->post('nb_ingredients');
                 $ingredientManager = new IngredientManager();
                 $ingredientRecetteManager = new IngredientRecetteManager();
                 for ($i = 1; $i <= $nb_ingredients; $i++) {
                     $nom_ingredient = $this->input->post('ingredient_' . $i);
                     $id_ingredient = $ingredientManager->get_id($nom_ingredient);
                     if ($id_ingredient == null) {
                         // On ajoute ici le nouvel ingrédient en bdd :
                         $id_ingredient = $ingredientManager->ajouter_ingredient($nom_ingredient);
                         $quantite = $this->input->post('quantite_' . $i);
                         $ingredientRecetteManager->ajouter($id_ingredient, $id_recette, $quantite);
                     } else {
                         $quantite = $this->input->post('quantite_' . $i);
                         $ingredientRecetteManager->ajouter($id_ingredient, $id_recette, $quantite);
                     }
                 }
                 redirect('recettes/detail/' . $id_recette);
             } else {
                 // Ici, le formulaire est valide et une photo a été envoyée, on vérifie donc qu'elle correspond aux bons critères
                 if (!$this->upload->do_upload('photo') == true) {
                     // Le formulaire est vide ou invalide
                     $this->load->model('CategorieManager');
                     //On récupère les noms des différentes catégories afin d'implémenter la liste déroulante du formulaire dynamiquement
                     $categorieManager = new CategorieManager();
                     $result = $categorieManager->get_categories();
                     $categories = array();
                     foreach ($result as $row) {
                         $categories[] = $row->nom_categorie;
                     }
                     $data = array();
                     $data['categories'] = $categories;
                     $data['menu_categories'] = $this->menu_categories;
                     $this->layout->view('formulaire_recette', $data);
                 } else {
                     // Ici l'upload est valide, on envoie les données en bdd !
                     $data_photo = array('upload_data' => $this->upload->data());
                     $this->load->library('Recette');
                     $this->load->library('Utilisateur');
                     $this->load->library('Categorie');
                     $this->load->model('CategorieManager');
                     $this->load->model('RecetteManager');
                     $this->load->model('UtilisateurManager');
                     $this->load->model('IngredientManager');
                     $this->load->model('IngredientRecetteManager');
                     // On récupère l'id de l'utilisateur :
                     $utilisateurManager = new UtilisateurManager();
                     $id_utilisateur = $utilisateurManager->get_id($_SESSION['login'])->id_utilisateur;
                     // On récupère l'id de la catégorie :
                     $id_sous_categorie = null;
                     $categorieManager = new CategorieManager();
                     $id_categorie = $categorieManager->get_id($this->input->post('categorie'))->id_categorie;
                     // On récupère l'id de la sous_catégorie (s'il n'est pas null):
                     if ($this->input->post('sous_categorie') != null) {
                         $id_sous_categorie = $categorieManager->get_id($this->input->post('sous_categorie'))->id_categorie;
                     }
                     // On instancie un objet recette
                     $recette = new Recette();
                     $recette->setId_utilisateur($id_utilisateur);
                     $recette->setId_categorie($id_categorie);
                     $recette->setId_sous_categorie($id_sous_categorie);
                     $recette->setTitre($this->input->post('titre'));
                     $recette->setNombre_personnes($this->input->post('nb_personnes'));
                     $recette->setCategorie_prix($this->input->post('prix'));
                     $recette->setCategorie_difficulte($this->input->post('difficulte'));
                     $recette->setDuree($this->input->post('duree'));
                     $recette->setDescription($this->input->post('preparation'));
                     $recette->setPhoto($data_photo['upload_data']['file_name']);
                     //On crée une miniature de l'image :
                     $config['image_library'] = 'gd2';
                     $config['source_image'] = $data_photo['upload_data']['full_path'];
                     $config['new_image'] = "miniature_" . $data_photo['upload_data']['file_name'];
                     //$config['create_thumb'] = TRUE;
                     $config['maintain_ratio'] = false;
                     $config['width'] = 500;
                     $config['height'] = 375;
                     $this->load->library('image_lib', $config);
                     $this->image_lib->resize();
                     $slug = url_title($recette->titre());
                     $recette->setSlug($slug);
                     // On ajoute la recette en bdd et on récupère son id :
                     $recetteManager = new RecetteManager();
                     $id_recette = $recetteManager->ajouter_recette($recette);
                     // Ici on s'occuppe des ingrédients !
                     $nb_ingredients = (int) $this->input->post('nb_ingredients');
                     $ingredientManager = new IngredientManager();
                     $ingredientRecetteManager = new IngredientRecetteManager();
                     for ($i = 1; $i <= $nb_ingredients; $i++) {
                         $nom_ingredient = $this->input->post('ingredient_' . $i);
                         $id_ingredient = $ingredientManager->get_id($nom_ingredient);
                         if ($id_ingredient == null) {
                             // On ajoute ici le nouvel ingrédient en bdd :
                             $id_ingredient = $ingredientManager->ajouter_ingredient($nom_ingredient);
                             $quantite = $this->input->post('quantite_' . $i);
                             $ingredientRecetteManager->ajouter($id_ingredient, $id_recette, $quantite);
                         } else {
                             $quantite = $this->input->post('quantite_' . $i);
                             $ingredientRecetteManager->ajouter($id_ingredient, $id_recette, $quantite);
                         }
                     }
                     redirect('recettes/detail/' . $id_recette);
                 }
             }
             // Si l'upload n'est pas valide, on réaffiche le formulaire
         } else {
             // Le formulaire est vide ou invalide
             $this->load->model('CategorieManager');
             //On récupère les noms des différentes catégories afin d'implémenter la liste déroulante du formulaire dynamiquement
             $categorieManager = new CategorieManager();
             $result = $categorieManager->get_categories();
             $categories = array();
             foreach ($result as $row) {
                 $categories[] = $row->nom_categorie;
             }
             $data = array();
             $data['categories'] = $categories;
             $data['active'] = "ajouter_recette";
             $data['menu_categories'] = $this->menu_categories;
             $this->layout->view('formulaire_recette', $data);
         }
     }
 }
Example #7
0
 public function test()
 {
     $this->load->library('recette');
     $this->load->model('recetteManager');
     $recetteManager = new RecetteManager();
     $donnees = $recetteManager->get_recette(1);
     $recette = new Recette($donnees);
     echo $recette->titre();
 }