/** * 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'); }
<th title="Létrehozás dátuma">Létrehozva</th> <th title="Utolsó küldés dátuma">Utolsó küldés</th> <th>Státusz</th> <th style="width:0px;"></th> </tr> </thead> <tbody> <?php foreach ($newsletters as $value) { ?> <tr class="odd gradeX"> <td> <?php if (Session::get('user_data.user_role_id') > 0 && empty($value['newsletter_lastsent_date'])) { ?> <input type="checkbox" class="checkboxes" name="newsletter_id_<?php echo $value['newsletter_id']; ?> " value="<?php echo $value['newsletter_id']; ?> "/> <?php } ?> </td> <td><?php echo $value['newsletter_name'];
function __construct() { Session::init(); $this->request = DI::get('request'); $this->response = DI::get('response'); }
/** * Felhasználó kijelentkezés */ public function logout() { // set the remember-me-cookie to ten years ago (3600sec * 365 days * 10). // that's obviously the best practice to kill a cookie via php // @see http://stackoverflow.com/a/686166/1114320 // setcookie('rememberme', false, time() - (3600 * 3650)); // setcookie('rememberme', false, time() - (3600 * 3650), '/'); // delete the session Session::destroy(); }
?> </td> <td><?php echo $value['unsubscribe_count']; ?> </td> <td><?php echo !$value['error'] ? '<span class="label label-success">Elküldve</span>' : '<span class="label label-danger">Hiba történt</span>'; ?> </td> <td> <div class="actions"> <div class="btn-group"> <a class="btn btn-sm grey-steel" href="#" data-toggle="dropdown" <?php echo Session::get('user_role_id') <= 0 ? 'disabled' : ''; ?> > <i class="fa fa-cogs"></i> </a> <ul class="dropdown-menu pull-right"> <li> <a id="submit_newsletter_<?php echo $value['newsletter_id']; ?> " rel="<?php echo $value['newsletter_id']; ?> "><i class="fa fa-trash"></i> Hírlevél elküldése</a> </li> <li>
<label for="testimonial_name">Név</label> <input type="text" name="testimonial_name" class="form-control input-large" value="<?php echo Session::get('testimonial_input.name'); ?> "/> </div> <div class="form-group"> <label for="testimonial_title">Beosztás</label> <input type='text' name='testimonial_title' class='form-control input-large' value="<?php echo Session::get('testimonial_input.title'); ?> "/> </div> <div class="form-group"> <label for="testimonial_text">Vélemény</label> <textarea type='text' name='testimonial_text' class='form-control'><?php echo Session::get('testimonial_input.text'); ?> </textarea> </div> </div> <!-- END USER GROUPS PORTLET BODY--> </div> <!-- END USER GROUPS PORTLET--> </form> </div> <!-- END COL-MD-12 --> </div> <!-- END ROW --> </div> <!-- END PAGE CONTENT-->
/** * 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); }