芝麻web文件管理V1.00
编辑当前文件:/home/p/r/i/prismawe/www/resuamer/site/application/classes/controller/admin/candidat.php
template->admin = $admin; $this->template->menuActif = Controller_Admin_Accueil::menuCandidat(); $this->template->content = null; if ($this->request->is_initial()) $this->tpl = & $this->template->content; else $this->tpl = & $this->template; } public function action_index() { $this->tpl = View::factory('admin/candidat/index'); $this->tpl->candidats = ORM::factory('candidat')->find_all(); } public function action_modifier(){ $id = $this->request->param('id'); if($id != ''){ $candidat = ORM::factory('candidat', $id); if(!$candidat->loaded()){ //le candidat sélectionné n'existe pas $_SESSION['erreur'][] = 'candidat existe pas'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'candidat','action' => 'index'))); } }else{ //c'est une création $candidat = ORM::factory('candidat'); } if(count($_POST)>0){ //on tarite le formulaire //on traite les donnée non traduite $erreur = false; $dateNaissance = $this->request->post('date_naissance'); if(!preg_match("#^[\d]{4}-[\d]{2}-[\d]{2}$#", $dateNaissance)){ $erreur = true; $_SESSION['erreur'][] = 'test'; } $dateMort = $this->request->post('date_mort'); if(!preg_match("#^[\d]{4}-[\d]{2}-[\d]{2}$#", $dateMort) && $dateMort != ''){ $erreur = true; } $rules = Validation::factory($_POST) ->rule('nom', 'not_empty') ->rule('nom', 'max_length', array(':value', 45)) ->rule('prenom', 'not_empty') ->rule('prenom', 'max_length', array(':value', 45)) ->rule('parti', 'not_empty') ->rule('ville_naissance', 'not_empty') ->rule('ville_naissance', 'max_length', array(':value', 255)); $data = $rules->as_array(); //on peuple candidat mais on save que si c'est correcte $candidat->setNom($data['nom']); $candidat->setPrenom($data['prenom']); $candidat->setParti($data['parti']); $candidat->setVille_naissance($data['ville_naissance']); $candidat->setDdn($data['date_naissance']); $candidat->setDate_mort($data['date_mort']); if($rules->check() && !$erreur){ $candidat->save(); $langues = ORM::factory('lang')->find_all(); foreach($langues as $langue){ //on traite les donnée traduite $candidatlang = ORM::factory('candidatlang') ->where('candidat_id', '=', $candidat->getId()) ->and_where('lang_id', '=', $langue->getId()) ->find(); if(!$candidatlang->loaded()){ $candidatlang->setCandidatId($candidat->getId()); $candidatlang->setLangId($langue->getId()); } $description = $this->request->post('description_'.$langue->getId()); $metadescription = $this->request->post('metadescription_'.$langue->getId()); //TOTO vérifier que les champs sont bien rempli, si tous vide c'est qu'on enregistre pas le candidat if($description != '' && $metadescription != ''){ $candidatlang->setDescription($description); $candidatlang->setMetadescription($metadescription); $candidatlang->save(); } } $candidat->save(); $_SESSION['info'][] = 'saved'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'candidat','action' => 'index'))); }else{ //erreur dans le fomulaire foreach ($rules->errors('messages/admin/candidat') as $error) { $_SESSION['erreur'][] = $error; } } } $this->tpl = View::factory('admin/candidat/modifier'); $this->tpl->candidat = $candidat; $this->tpl->langues = ORM::factory('lang')->find_all(); $this->tpl->partisActif = ORM::factory('parti')->where('date_dissolution', 'is', null)->find_all(); $this->tpl->partisDissous = ORM::factory('parti')->where('date_dissolution', 'is not', null)->find_all(); $this->tpl->id = $candidat->id; } public function action_supprimer(){ $id = $this->request->param('id'); $candidat = ORM::factory('candidat', $id); if(!$candidat->loaded()){ //le candidat sélectionné n'existe pas $_SESSION['erreur'][] = 'candidat existe pas'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'candidat','action' => 'index'))); }else{ //on supprime le candidat $candidat->delete(); $_SESSION['info'][] = 'Candidat suprimée'; $this->request->redirect(Route::get('admin')->uri(array('controller'=>'candidat','action' => 'index'))); } } }