Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.74 KB | None | 0 0
  1. <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
  2. class Profil extends CI_Controller
  3. {
  4.     public function __construct()
  5.     {
  6.         parent::__construct();
  7.         $this->load->library('session');
  8.         $this->load->helper('url');
  9.         $this->load->helper('form');
  10.         $this->load->model('Profil_model');
  11.         $this->load->library('form_validation');
  12.         $this->load->helpers('common');
  13.         $this->load->database();
  14.         $this->load->model('Demande_model');
  15.     }
  16.     public function index($slug = null)
  17.     {
  18.         if ($slug != null && strlen($slug)) {
  19.             $udata = $this->Profil_model->getUserData($slug);
  20.             if ($udata != null) {
  21.                 $userinfo = (object)array(
  22.                     'nom' => $udata->Nom,
  23.                     'prenom' => $udata->Prenom,
  24.                     'email' => $udata->AdresseMail,
  25.                     'avatar' => $udata->ImagePath,
  26.                     'SQuestion' => null,
  27.                     'id' => $udata->idUser
  28.                 );
  29.             } else {
  30.                 $this->load->view('header');
  31.                 $this->load->view('404');
  32.                 $this->load->view('footer');
  33.                 return;
  34.             }
  35.         } else {
  36.             $userinfo = (object)array(
  37.                 'nom' => $this->session->userdata('user_nom'),
  38.                 'prenom' => $this->session->userdata('user_prenom'),
  39.                 'email' => $this->session->userdata('user_email'),
  40.                 'avatar' => $this->session->userdata('user_avatar'),
  41.                 'SQuestion' => null,
  42.                 'id' => $this->session->userdata('user_id')
  43.             );
  44.         }
  45.         $data['userslug'] = $slug;
  46.         $data['user'] = $userinfo;
  47.         $data['mesDemandes'] = $this->Demande_model->getMyDemandes($this->session->userdata('user_id'));
  48.         $data['mesPropositions'] = $this->Demande_model->getMyPropositions($this->session->userdata('user_id'));
  49.         $data['mesSeances'] = $this->Demande_model->getMySeances($this->session->userdata('user_id'));
  50.         $data['otherSeances'] = $this->Demande_model->getOtherSeances($this->session->userdata('user_id'));
  51.         $this->load->view('header');
  52.         $this->load->model('rating_model');
  53.         if ($this->logged_in() && $slug === null) {
  54.             $this->load->view("profil_header", $data);
  55.             $this->load->view("profil", $data);
  56.             $idUserRated = $this->session->userdata('user_id');
  57.             $data['ratings'] = $this->rating_model->show_ratings($idUserRated);
  58.         } else if ($this->logged_in()) {
  59.             $this->load->view("profil_header", $data);
  60.             $this->load->view("profil", $data);
  61.             $idUserRated = $this->rating_model->getIdFromSlug($slug);
  62.             $data['ratings'] = $this->rating_model->show_ratings($idUserRated);
  63.             $this->load->view('profil_ratings', $data);
  64.         } else {
  65.             $this->session->set_flashdata('login_error', $this->lang->line('access_not_authorized_please_login'));
  66.             $this->login();
  67.         }
  68.         if ($this->logged_in()) {
  69.             $this->load->view('footer');
  70.         }
  71.     } //end index
  72.     public function edit_profile()
  73.     {
  74.         $userinfo = (object)array(
  75.             'nom' => $this->session->userdata('user_nom'),
  76.             'prenom' => $this->session->userdata('user_prenom'),
  77.             'email' => $this->session->userdata('user_email'),
  78.             'avatar' => $this->session->userdata('user_avatar'),
  79.             'SQuestion' => null,
  80.             'id' => $this->session->userdata('user_id')
  81.         );
  82.         $data['user'] = $userinfo;
  83.         if (!$this->logged_in()) {
  84.             $this->session->set_flashdata('login_error', $this->lang->line('no_access'));
  85.             $this->login();
  86.             return;
  87.         }
  88.         if (!empty($this->input->post('avatar_submit'))) {
  89.             $this->do_upload();
  90.         }
  91.         if (!empty($this->input->post('repScr'))) {
  92.             $this->QstSecr();
  93.         }
  94.         if (!empty($this->input->post('name_submit'))) {
  95.             $this->modifName();
  96.         }
  97.         if (!empty($this->input->post('firstname_submit'))) {
  98.             $this->modifPrenom();
  99.         }
  100.         if (!empty($this->input->post('mail_submit'))) {
  101.             $this->modifMail();
  102.         }
  103.         if (!empty($this->input->post('pwd_submit'))) {
  104.             $this->modifPwd();
  105.         }
  106.         $this->load->view('header');
  107.         $this->load->view('edit_profil', $data);
  108.         $this->load->view('footer');
  109.     }
  110.     public function view($slug = null)
  111.     {
  112.         if ($slug != null) {
  113.             $this->index($slug);
  114.         }
  115.     }
  116.     public function login()
  117.     {
  118.         $this->load->view('header');
  119.         $this->load->view("login");
  120.         $this->load->view('footer');
  121.     }
  122.     public function modifName()
  123.     {
  124.         $this->form_validation->set_rules('name', 'Nom de famille', 'trim|required|min_length[2]');
  125.         if ($this->form_validation->run() == FALSE) {
  126.         } else {
  127.             $newName = $this->input->post('name');
  128.             $this->session->set_userdata('user_nom', $newName);
  129.             $idUser = $this->session->userdata('user_id');
  130.             $this->load->model('Profil_model');
  131.             $this->Profil_model->modifyName($idUser, $newName);
  132.             $this->reload();
  133.         }
  134.     }
  135.     function modifPrenom()
  136.     {
  137.         $this->form_validation->set_rules('prenom', 'Prenom', 'trim|required|min_length[2]');
  138.         if ($this->form_validation->run() == FALSE) {
  139.         } else {
  140.             $newFirstName = $this->input->post('prenom');
  141.             $idUser = $this->session->userdata('user_id');
  142.             $this->load->model('Profil_model');
  143.             $this->Profil_model->modifyFirstName($idUser, $newFirstName);
  144.             $this->reload();
  145.         }
  146.     }
  147.     function modifMail()
  148.     {
  149.         $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
  150.         $this->form_validation->set_rules('confirmMail', "Confirmation de votre email", 'trim|required|valid_email|matches[email]');
  151.         if ($this->form_validation->run() == FALSE) {
  152.         } else {
  153.             $newMail = $this->input->post('email');
  154.             $this->load->model('Profil_model');
  155.             $idUser = $this->session->userdata('user_id');
  156.             $this->Profil_model->modifyEmail($idUser, $newMail);
  157.             $this->reload();
  158.         }
  159.     }
  160.     function modifPwd()
  161.     {
  162.         $this->form_validation->set_rules('newPwd', 'Mot de passe', 'trim|required|min_length[4]|max_length[64]');
  163.         $this->form_validation->set_rules('confirmNewPwd', 'Confirmation de votre mot de passe', 'trim|required|matches[newPwd]');
  164.         if ($this->form_validation->run() == FALSE) {
  165.         } else {
  166.             $oldPassword = hash('sha512', $this->input->post('oldPwd'));
  167.             $idUser = $this->session->userdata('user_id');
  168.             $this->load->model('Profil_model');
  169.             $pwdDb = $this->Profil_model->recupPwd($idUser);
  170.             if ($oldPassword === $pwdDb) {
  171.                 $newPassword = hash('sha512', $this->input->post('newPwd'));
  172.                 $this->load->model('Profil_model');
  173.                 $this->Profil_model->modifyPwd($idUser, $newPassword);
  174.             } else {
  175.                 $this->session->set_flashdata('validation_errors', $this->lang->line('modif_pwd_failed'));
  176.             }
  177.         }
  178.     }
  179.     function QstSecr()
  180.     {
  181.         $this->form_validation->set_rules('repScr', 'Réponse secrète', '|required|');
  182.         if ($this->form_validation->run() == FALSE) {
  183.             $this->session->set_flashdata('validation_errors', $this->lang->line('question_failed'));
  184.         } else {
  185.             $secretQst = $this->input->post('Secret');
  186.             $repscr = $this->input->post('repScr');
  187.             $this->load->model('Profil_model');
  188.             $idUser = $this->session->userdata('user_id');
  189.             $this->Profil_model->modifyQstSecr($idUser, $secretQst, $repscr);
  190.         }
  191.     }
  192.     function do_upload()
  193.     {
  194.         $idUser = $this->session->userdata('user_id');
  195.         $name_file = "AVATAR_" . $idUser;
  196.         $content_dir = './uploads/';
  197.         $config['upload_path'] = $content_dir;
  198.         $config['allowed_types'] = "gif|jpg|png";
  199.         $config['max_size'] = "2048000";
  200.         $config['file_name'] = $name_file;
  201.         $config['overwrite'] = true;
  202.         $this->load->library('upload', $config);
  203.         if (!$this->upload->do_upload()) {
  204.             $this->session->set_flashdata('upload_error', $this->upload->display_errors());
  205.             return false;
  206.         }
  207.         $image_data = $this->upload->data();
  208.         $extension = $image_data['image_type'];
  209.         // c'est la même
  210.         if ($extension === "jpeg") {
  211.             $extension = "jpg";
  212.         }
  213.         $config = array(
  214.             'image_library' => "gd2",
  215.             'source_image' => $image_data['full_path'],
  216.             'create_thumb' => FALSE,
  217.             'maintain_ratio' => TRUE,
  218.             'width' => "150",
  219.             'height' => "150",
  220.         );
  221.         $this->load->library('image_lib', $config);
  222.         $this->image_lib->initialize($config);
  223.         if (!$this->image_lib->resize()) {
  224.             echo $this->image_lib->display_errors();
  225.         }
  226.         $avatarUser = './uploads/' . $name_file . '.' . $extension;
  227.         $this->Profil_model->addImage($avatarUser, $idUser);
  228.         $this->session->set_userdata('user_avatar', $avatarUser);
  229.         return true;
  230.     }
  231.     public function logged_in()
  232.     {
  233.         return !empty($this->session->userdata('user_id'));
  234.     }
  235.     public function reload()
  236.     {
  237.         redirect($this->uri->uri_string());
  238.     }
  239.     /* Utilitaire pour l'admin panel */
  240.     public function data()
  241.     {
  242.         if ($this->logged_in()) {
  243.             $data = array(
  244.                 "id" => $this->session->userdata('user_id'),
  245.                 "nom" => $this->session->userdata('user_nom'),
  246.                 "prenom" => $this->session->userdata('user_prenom'),
  247.                 "status" => $this->session->userdata('user_status')
  248.             );
  249.             header('Content-Type: application/json');
  250.             print json_encode($data, JSON_PRETTY_PRINT);
  251.         }
  252.     }
  253.     public function DeleteDemandeAide($idDemandeA)
  254.     {
  255.         $this->Demande_model->DeleteDA($idDemandeA);
  256.     }
  257.     public function DeletePropositionAide($idDemandeA)
  258.     {
  259.         $this->Demande_model->DeletePA($idDemandeA);
  260.     }
  261.     public function mes_ratings()
  262.     {
  263.         $this->load->model('rating_model');
  264.         $this->load->view("header");
  265.         $idUserRated = $this->session->userdata('user_id');
  266.         $data['ratings'] = $this->rating_model->show_ratings($idUserRated);
  267.         //$data['average'] = $this->rating_model->get_avg_rating($idUserRated);
  268.         $this->load->view("list_my_ratings", $data);
  269.         $this->load->view("footer");
  270.     }
  271.     public function mes_seances_termines()
  272.     {
  273.         $this->load->model('rating_model');
  274.         $this->load->view("header");
  275.         $idUserRated = $this->session->userdata('user_id');
  276.         $data['seances'] = $this->Demande_model->show_seances($idUserRated);
  277.         $this->load->view("list_my_seances", $data);
  278.         $this->load->view("footer");
  279.     }
  280.     public function mdp_oublie()
  281.     {
  282.         $this->load->view('header');
  283.         if ($this->input->get_post('mail_submit')) {
  284.             $this->load->model('Profil_model');
  285.             $this->load->model('Inscription_model');
  286.             $this->load->helper('email');
  287.             $udata = (object)$this->Profil_model->getUserDataFromEmail($this->input->get_post('email'));
  288.             if (isset($udata->idUser) && strlen($udata->idUser)) {
  289.                 $user = (object)array(
  290.                     'nom' => $udata->Nom,
  291.                     'prenom' => $udata->Prenom,
  292.                     'email' => $udata->AdresseMail,
  293.                     'id' => $udata->idUser
  294.                 );
  295.                 $user->activation_key = $this->Inscription_model->create_activation_key($user);
  296.                 date_default_timezone_set('Europe/Brussels');
  297.                 $config = Array(
  298.                     'protocol' => 'smtp',
  299.                     'smtp_host' => 'ssl://smtp.googlemail.com',
  300.                     'smtp_port' => 465,
  301.                     'smtp_user' => 'theknowledgebase2015',
  302.                     'smtp_pass' => 'aoien2i3n()_AAAarstoien%BX',
  303.                     'mailtype' => 'html',
  304.                     'charset' => 'iso-8859-1',
  305.                     'wordwrap' => TRUE
  306.                 );
  307.                 $this->load->library('email', $config);
  308.                 $this->email->set_newline("\r\n");
  309.                 $data['user'] = $user;
  310.                 /* Nouveau mot de passe */
  311.                 $data['newMdp'] = uniqid();
  312.                 $this->Profil_model->modifyPwd($user->id, hash('sha512', $data['newMdp']));
  313.                 $email_msg = $this->load->view('mdp_reset_email', $data, TRUE);
  314.                 $subject = $this->lang->line('mdp_reset_email_subject');
  315.                 $this->email->from('theknowledgebase2015@gmail.com', 'theknowledgebase.be');
  316.                 $this->email->to($user->email);
  317.                 $this->email->subject($subject);
  318.                 $this->email->message($email_msg);
  319.                 if (!$this->email->send()) {
  320.                     $this->email->print_debugger();
  321.                 }
  322.                 $this->load->view('mdp_oublie_sent');
  323.             } else {
  324.                 $data['message'] = $this->lang->line('user_not_found');
  325.                 $this->load->view('errors/not_found', $data);
  326.             }
  327.         } else {
  328.             $this->load->view('mdp_oublie');
  329.         }
  330.         $this->load->view('footer');
  331.     }
  332. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement