芝麻web文件管理V1.00
编辑当前文件:/home/p/r/i/prismawe/www/resuamer/site/application/classes/controller/admin/evenement.php
template->admin = $admin; $this->template->menuActif = Controller_Admin_Accueil::menuEvenement(); $this->template->content = null; if ($this->request->is_initial()) $this->tpl = & $this->template->content; else $this->tpl = & $this->template; } public function action_index() { $id = $this->request->param('id'); if($id != ''){ $candidat = ORM::factory('candidat', $id); if(!$candidat->loaded()){ //le evenement sélectionné n'existe pas $_SESSION['erreur'][] = 'candidat existe pas'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'evenement','action' => 'index'))); } $evenements = ORM::factory('evenement')->where('candidat_id', '=', $candidat->getId())->find_all(); }else{ $evenements = ORM::factory('evenement')->find_all(); } $this->tpl = View::factory('admin/evenement/index'); $this->tpl->evenements = $evenements; } public function action_indexByType() { $id = $this->request->param('id'); if($id != ''){ $typeevenement = ORM::factory('typeevenement', $id); if(!$typeevenement->loaded()){ //le evenement sélectionné n'existe pas $_SESSION['erreur'][] = 'Type non trouvé'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'typeevenement','action' => 'index'))); } }else{ $_SESSION['erreur'][] = 'Type non trouvé'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'typeevenement','action' => 'index'))); } $this->tpl = View::factory('admin/evenement/index'); $this->tpl->evenements = ORM::factory('evenement')->find_all();; } public function action_modifier(){ $id = $this->request->param('id'); if($id != ''){ $evenement = ORM::factory('evenement', $id); if(!$evenement->loaded()){ //le evenement sélectionné n'existe pas $_SESSION['erreur'][] = 'evenement existe pas'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'evenement','action' => 'index'))); } }else{ //c'est une création $evenement = ORM::factory('evenement'); } if(count($_POST)>0){ //on tarite le formulaire //on traite les donnée non traduite $erreur = false; $date = $this->request->post('date'); if(!preg_match("#^[\d]{4}-[\d]{2}-[\d]{2}$#", $date)){ $_SESSION['erreur'][] = 'Date non valide, format : aaaa-mm-dd'; $erreur = true; } $evenement->setDate($date); $dateFin = $this->request->post('date_fin'); if($dateFin!= '' && !preg_match("#^[\d]{4}-[\d]{2}-[\d]{2}$#", $date)){ $_SESSION['erreur'][] = 'Date fin non valide, format : aaaa-mm-dd'; $erreur = true; } $evenement->setDate_fin($dateFin); $candidat_id = $this->request->post('candidat'); $candidat = ORM::factory('candidat', $candidat_id); if(!$candidat->loaded()){ $_SESSION['erreur'][] = 'Candidat existe pas'; $erreur = true; } $typeevenement_id = $this->request->post('typeevenement'); $typeevenement = ORM::factory('typeevenement', $typeevenement_id); if(!$typeevenement->loaded()){ $_SESSION['erreur'][] = 'Type evenement existe pas'; $erreur = true; } $evenement->setCandidat_id($candidat->getId()); $evenement->setTypeevenement_id($typeevenement->getId()); $langues = ORM::factory('lang')->find_all(); if(!$erreur){ $evenement->save(); foreach($langues as $langue){ //on traite les donnée traduite $evenementlang = orm::factory('evenementlang') ->where('evenement_id', '=', $evenement->getId()) ->and_where('lang_id', '=', $langue->getId()) ->find(); if(!$evenementlang->loaded()){ $evenementlang->setEvenement_id($evenement->getId()); $evenementlang->setLang_id($langue->getId()); } $libelle = $this->request->post('libelle_'.$langue->getId()); //TOTO vérifier que les champs sont bien rempli, si tous vide c'est qu'on enregistre pas le evenement if($libelle != ''){ $evenementlang->setLibelle($libelle); $evenementlang->save(); } } $_SESSION['info'][] = 'saved'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'evenement','action' => 'index'))); } else{ //erreur dans le fomulaire } } $this->tpl = View::factory('admin/evenement/modifier'); $this->tpl->evenement = $evenement; $this->tpl->typeevenements = ORM::factory('typeevenement')->find_all(); $this->tpl->candidats = ORM::factory('candidat')->find_all(); $this->tpl->langues = ORM::factory('lang')->find_all(); $this->tpl->id = $evenement->id; } public function action_supprimer(){ $id = $this->request->param('id'); $evenement = ORM::factory('evenement', $id); if(!$evenement->loaded()){ //le evenement sélectionné n'existe pas $_SESSION['erreur'][] = 'evenement existe pas'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'evenement','action' => 'index'))); }else{ //on supprime les lang associé foreach($evenement->evenementslang->find_all() as $evenementlang){ $evenementlang->delete(); } //on supprime l'evenement $evenement->delete(); $_SESSION['info'][] = 'Evenement suprimée'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'evenement','action' => 'index'))); } } }