/** * 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'); }
/** * 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); }