public function addMission($language) { // Définition de la langue : if (!$this->setupLanguage($language)) { App::abort(404); } // Redirection de l'utilisateur s'il est pas connecté et s'il n'est pas Admin: if (!Auth::check()) { return Redirect::to(URL::to($language . '/home')); } elseif (Auth::User()->_level != "admin") { return Redirect::to(URL::to($language . '/missions')); } // Variables : // Missions : $languages = Language::where('_url', '=', $language)->firstOrFail(); $page = Pages::where('_language', $languages->_id)->where("_name", "=", "missions")->get()->first(); $missions = Missions::where("_dateEnd", ">=", date("Y-m-d 00:00:00"))->orderBy('_dateStart')->orderBy('_dateEnd')->get(); // Form : $inputs = Input::all(); $result = array(); // Details : $data = array("situation" => array("title" => $page->_title, "description" => $page->_description), "position" => array($page->_title => "")); // Envoi du formulaire d'ajout de mission : if (count(Input::all()) > 0) { // validation des formulaire : $validator = Validator::make($inputs, array('professor-name' => 'required|max:60', 'professor-email' => 'required|email|max:60', 'manager-name' => 'required|max:60', 'manager-email' => 'required|email|max:60', 'professor-mission-start' => 'required|date_format:"Y-m-d"|after:"now -1 day"', 'professor-mission-end' => 'required|date_format:"Y-m-d"|after:"' . strtotime("professor-mission-start") . '"', 'your-message' => 'required', 'liaison-file' => 'mimes:jpg,jpeg,png,doc,docx,pdf'), array('professor-name.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_NAME_RQ'), 'professor-name.max' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_NAME_MAX'), 'professor-email.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_EMAIL_RQ'), 'professor-email.email' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_EMAIL_INV'), 'professor-email.max' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_EMAIL_MAX'), 'manager-name.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_MANAGER_NAME_RQ'), 'manager-name.max' => Lang::get('libelle.MISSIONS_FORM_ERROR_MANAGER_NAME_MAX'), 'manager-email.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_MANAGER_EMAIL_RQ'), 'manager-email.email' => Lang::get('libelle.MISSIONS_FORM_ERROR_MANAGER_EMAIL_INV'), 'manager-email.max' => Lang::get('libelle.MISSIONS_FORM_ERROR_MANAGER_EMAIL_MAX'), 'professor-mission-start.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_MISSION_START_RQ'), 'professor-mission-start.date_format' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_MISSION_START_INV'), 'professor-mission-start.after' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_MISSION_START_INV'), 'professor-mission-end.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_MISSION_END_RQ'), 'professor-mission-end.date_format' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_MISSION_END_INV'), 'professor-mission-end.after' => Lang::get('libelle.MISSIONS_FORM_ERROR_PROFESSEUR_MISSION_END_INV'), 'your-message.required' => Lang::get('libelle.MISSIONS_FORM_ERROR_MESSAGE'), 'liaison-file.mimes' => Lang::get('libelle.MISSIONS_FORM_ERROR_LIAISON_FILE'))); // retour en cas d'erreur : if ($validator->fails()) { $result["errors"] = $validator->messages(); } else { // traitement du texte en paragraphe $texte = explode('<br />', nl2br(trim(htmlentities($inputs['your-message'])))); $inputs['your-message'] = ""; foreach ($texte as $key => $value) { $inputs['your-message'] .= "<p>" . $value . "</p>"; } // ajout en cas de succès : $mission = new Missions(); $mission->_author = 1; $mission->_dateStart = trim(htmlentities($inputs['professor-mission-start'])); $mission->_dateEnd = trim(htmlentities($inputs['professor-mission-end'])); $mission->_profName = trim(htmlentities($inputs['professor-name'])); $mission->_profMail = trim(htmlentities($inputs['professor-email'])); $mission->_ctdName = trim(htmlentities($inputs['manager-name'])); $mission->_ctdMail = trim(htmlentities($inputs['manager-email'])); $mission->_description = $inputs['your-message']; if (Input::hasFile('liaison-file')) { $filename = date("YmdHis") . "-" . Input::file('liaison-file')->getClientOriginalName(); Input::file('liaison-file')->move(dirname("app/storage/uploads/missions/") . "/missions/", $filename); $mission->_file = "storage/uploads/missions/" . $filename; } // enrgistrement en base de données. if ($mission->save()) { // actualisation des missions : $missions = Missions::where("_dateEnd", ">=", date("Y-m-d 00:00:00"))->orderBy('_dateStart')->orderBy('_dateEnd')->get(); // vidage du formulaire : foreach ($inputs as $key => $value) { $inputs[$key] = ""; } // affichage du message de reussite : $result["success"] = Lang::get("libelle.MISSIONS_FORM_SUCCESS"); } else { $result["errors"] = Lang::get("libelle.MISSIONS_FORM_ERROR"); } } } // Affichage de la vue avec retour du résultat de l'ajout : $this->layout->content = View::make('pages.missions.missions', array("data" => $data, "page" => $page, "missions" => $missions, "inputs" => $inputs, "result" => $result)); }