Exemplo n.º 1
0
 /**
  * A testimonialsek sorrendjének módosításakor meghívott action (testimonials/order)
  *
  * Megvizsgálja, hogy a kérés xmlhttprequest volt-e (Ajax), ha igen meghívja a testimonials_order() metódust 
  */
 public function insert()
 {
     if ($this->request->has_post()) {
         $data['name'] = $this->request->get_post('testimonial_name');
         $data['title'] = $this->request->get_post('testimonial_title');
         $data['text'] = $this->request->get_post('testimonial_text');
         // input adatok tárolása session-ben
         Session::set('testimonial_input', $data);
         // validátor objektum létrehozása
         $validate = new Validate();
         // szabályok megadása az egyes mezőkhöz (mező neve, label, szabály)
         $validate->add_rule('name', 'név', array('required' => true, 'min' => 2));
         $validate->add_rule('title', 'beosztás', array('required' => true));
         $validate->add_rule('text', 'vélemény', array('required' => true));
         // üzenetek megadása az egyes szabályokhoz (szabály_neve, üzenet)
         $validate->set_message('required', 'A :label mező nem lehet üres!');
         $validate->set_message('min', 'A :label mező túl kevés karaktert tartalmaz!');
         // mezők validálása
         $validate->check($data);
         // HIBAELLENŐRZÉS - ha valamilyen hiba van a form adataiban
         if (!$validate->passed()) {
             foreach ($validate->get_error() as $value) {
                 Message::set('error', $value);
             }
             $this->response->redirect('admin/testimonials/insert');
         } else {
             // adatbázisba írás
             $result = $this->testimonials_model->insert($data);
             if ($result !== false) {
                 Message::set('success', 'new_testimonial_success');
                 Session::delete('testimonial_input');
                 $this->response->redirect('admin/testimonials');
             } else {
                 Message::set('error', 'unknown_error');
                 $this->response->redirect('admin/testimonials/insert');
             }
         }
     }
     $view = new View();
     $data['title'] = 'Új testimonials oldal';
     $data['description'] = 'Új testimonials oldal description';
     $view->add_links(array('testimonial_insert', 'vframework'));
     $view->render('testimonials/tpl_testimonial_insert', $data);
     Session::delete('testimonial_input');
 }
Exemplo n.º 2
0
 /**
  * Felhasználó adatainak megjelenítése és módosítása
  *
  * A metódusnak szüksége van egy user id-jére amit módosítani akarunk ($this->request->get_params('id'))
  */
 public function profile($id)
 {
     // $id = (int)$this->request->get_params('id');
     $id = (int) $id;
     if ($this->request->has_post('submit_edit_user')) {
         // adatok a $_POST tömbből
         $post_data = $this->request->get_post();
         // validátor objektum létrehozása
         $validate = new Validate();
         // szabályok megadása az egyes mezőkhöz (mező neve, label, szabály)
         $validate->add_rule('name', 'username', array('required' => true, 'min' => 2));
         $validate->add_rule('first_name', 'userfirstname', array('required' => true, 'min' => 2));
         $validate->add_rule('last_name', 'userlastname', array('required' => true, 'min' => 2));
         // Jelszó ellenőrzés ha üres a password és az ellenőrző password mezö
         if (empty($this->request->get_post('password')) && empty($this->request->get_post('password_again'))) {
             $password_empty = true;
         } else {
             $validate->add_rule('password', 'password', array('required' => true, 'min' => 6));
             $validate->add_rule('password_again', 'password_again', array('required' => true, 'matches' => 'password'));
         }
         $validate->add_rule('email', 'email', array('required' => true, 'email' => true));
         // üzenetek megadása az egyes szabályokhoz (szabály_neve, üzenet)
         $validate->set_message('required', ':label_field_empty');
         $validate->set_message('min', ':label_too_short');
         $validate->set_message('matches', ':label_repeat_wrong');
         $validate->set_message('email', ':label_does_not_fit_pattern');
         //$validate->set_message('max', ':label_too_long');
         // mezők validálása
         $validate->check($post_data);
         // HIBAELLENŐRZÉS - ha valamilyen hiba van a form adataiban
         if (!$validate->passed()) {
             foreach ($validate->get_error() as $error_msg) {
                 Message::set('error', $error_msg);
             }
             $this->response->redirect('admin/user/profile/' . $id);
         } else {
             // végrehajtás, ha nincs hiba
             $user = array();
             $user['name'] = $this->request->get_post('name');
             $user['first_name'] = $this->request->get_post('first_name');
             $user['last_name'] = $this->request->get_post('last_name');
             $user['phone'] = $this->request->get_post('phone');
             //ha nem létezik a $password_empty változó, vagyis nem üres mindkét password mező
             if (!isset($password_empty)) {
                 // jelszó kompatibilitás library betöltése régebbi php verzió esetén
                 $this->user_model->load_password_compatibility();
                 // crypt the user's password with the PHP 5.5's password_hash() function, results in a 60 character
                 // hash string. the PASSWORD_DEFAULT constant is defined by the PHP 5.5, or if you are using PHP 5.3/5.4,
                 // by the password hashing compatibility library. the third parameter looks a little bit shitty, but that's
                 // how those PHP 5.5 functions want the parameter: as an array with, currently only used with 'cost' => XX
                 $hash_cost_factor = Config::get('hash_cost_factor') !== null ? Config::get('hash_cost_factor') : null;
                 $user['password_hash'] = password_hash($this->request->get_post('password'), PASSWORD_DEFAULT, array('cost' => $hash_cost_factor));
             }
             $user['email'] = $this->request->get_post('email');
             if ($this->request->has_post('user_group')) {
                 $user['role_id'] = $this->request->get_post('user_group', 'integer');
             }
             //ha van feltöltve user kép
             if (!empty($this->request->get_post('img_url'))) {
                 $path_parts = pathinfo($this->request->get_post('img_url'));
                 $user['photo'] = $path_parts['filename'] . '.' . $path_parts['extension'];
             }
             // Megvizsgáljuk, hogy van-e már ilyen nevű user (de nem az amit módosítani akarunk)
             if ($this->user_model->checkUserNoLoggedIn($id, $user['name'])) {
                 Message::set('error', 'username_already_taken');
                 $this->response->redirect('admin/user/profile/' . $id);
             }
             /*
                   if(!is_null($user['email'])){
                   // Megvizsgáljuk, hogy van-e már ilyen email cím (de nem az amit módosítani akarunk)
             
             		            // ha már van ilyen email cím
                   	if ($this->user_model->checkEmailNoLoggedIn($id, $user['email'])) {
             						Message::set('error', 'user_email_already_taken');
                     	$this->response->redirect('admin/user/profile');
                   	}
                   }
             */
             // új adatok beírása az adatbázisba (update) a $user tömb tartalmazza a frissítendő adatokat
             $result = $this->user_model->update($id, $user);
             if ($result !== false) {
                 // ha a bejelentkezett user adatait módosítjuk, akkor a session adatokat is frissíteni kell
                 if (Session::get('user_data.id') == $id) {
                     // Módosítjuk a $_SESSION tömben is a user adatait!
                     Session::set('user_data.name', $user['name']);
                     Session::set('user_data.email', $user['email']);
                     if (isset($user['role_id'])) {
                         Session::set('user_data.role_id', $user['role_id']);
                     }
                     if (isset($user['user_photo'])) {
                         Session::set('user_data.photo', $user['photo']);
                     }
                 }
                 Message::set('success', 'user_data_update_success');
                 $this->response->redirect('admin/user');
             } else {
                 Message::set('error', 'unknown_error');
                 $this->response->redirect('admin/user/profile/' . $id);
             }
         }
     }
     $view = new View();
     $data['title'] = 'Profilom oldal';
     $data['description'] = 'Profilom description';
     $data['user'] = $this->user_model->selectUser($id);
     $view->add_links(array('bootstrap-fileupload', 'croppic', 'validation', 'user_profile'));
     $view->render('users/tpl_profile', $data);
 }