public function modify(array $params)
 {
     if (isset($params[0])) {
         $id_user = intval($params[0]);
         if (!($user = $this->model->getUser($id_user))) {
             return false;
         }
         $data = Request::getAssoc(array());
         $errors = array();
         if (Request::getMethod() == 'POST') {
             $data = Request::getAssoc(array('access', 'lastname', 'firstname', 'lastname', 'email'));
             if (!Tools::isEmail($data['email'])) {
                 $errors[] = 'L\'email saisi n\'est pas valide !';
             }
             if (empty($errors)) {
                 $this->model->updateUser($id_user, $data);
             }
             $password = Request::getAssoc(array('password', 'password_confirm'));
             if (!empty($password['password']) && !empty($password['password_confirm'])) {
                 // Update the password only if modified
                 if ($password['password'] == $password['password_confirm']) {
                     $this->model->updateUserPassword($id_user, $password['password']);
                 } else {
                     $errors[] = 'Les mots de passe saisis ne sont pas identiques.';
                 }
             }
             return array('id_user' => $id_user, 'user' => $user, 'method' => 'POST', 'errors' => $errors);
         }
         return array('id_user' => $id_user, 'user' => $user, 'method' => 'GET', 'errors' => $errors);
     }
     return false;
 }
 function send_comment(array $params)
 {
     if (!isset($params[0])) {
         return false;
     }
     $topic_id = intval($params[0]);
     $data = Request::getAssoc(array('message'));
     if (!in_array(null, $data, true)) {
         $this->model->addComment($topic_id, $data);
         return array('id' => $topic_id);
     }
 }
 function modif_confirm(array $params)
 {
     if (isset($params[0])) {
         $article_id = intval($params[0]);
         $data = Request::getAssoc(array('nom', 'corps'));
         if (!in_array(null, $data, true)) {
             $data += Request::getAssoc(array('mclef'));
             $errors = array();
             //TO DO : Make the error work (doesn't appear despite bad extension)
             //-------------Banniere---------------------------------------------------
             $maxwidth = 100000;
             $minwidth = 0;
             $maxheight = 100000;
             $minheight = 0;
             $banner = Request::get('bann', null, 'FILES');
             $message_erreur = '';
             if (!empty($banner['name'])) {
                 if (!$banner['error']) {
                     $extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
                     //1. strrchr renvoie l'extension avec le point (« . »).
                     //2. substr(chaine,1) ignore le premier caractère de chaine.
                     //3. strtolower met l'extension en minuscules.
                     $extension_upload = strtolower(substr(strrchr($banner['name'], '.'), 1));
                     if (in_array($extension_upload, $extensions_valides)) {
                         $sizeimage = getimagesize($banner['tmp_name']);
                         if ($sizeimage[0] > $minwidth and $sizeimage[1] > $minheight) {
                             $new_file_name = $banner['name'];
                             move_uploaded_file($banner['tmp_name'], UPLOAD_DIR . 'article' . DS . 'banner' . DS . $new_file_name);
                             $data['bann'] = Config::get('config.base') . '/upload/article/banner/' . $new_file_name;
                         } else {
                             $errors += array('Problème de dimension pour la bannière : trop petit en hauteur et/ou en largeur');
                         }
                     } else {
                         $errors += array('Problème d\'extension pour la bannière : votre fichier n\'est pas du type png, jpeg, jpg ou gif');
                     }
                 } else {
                     $errors += array('Problème de Serveur');
                 }
             } else {
                 $data['bann'] = '';
             }
             //----------------------------------------------------------------------------(fin banniere)
             if (empty($data['bann'])) {
                 $data['bann'] = null;
             }
             $id_article = $article_id;
             $this->model->modifArticle($data, $id_article);
             return array('id' => $id_article, 'error' => $errors);
         }
     }
 }
 public function contactconfirm()
 {
     $data = Request::getAssoc(array('subject', 'message', 'firstname', 'lastname', 'email'));
     //Destination
     $mail = Config::get('config.email');
     //filter
     if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}\$#", $mail)) {
         $passage_ligne = "\r\n";
     } else {
         $passage_ligne = "\n";
     }
     //extract email
     $email = $data['email'];
     //extract firsname
     $firstname = $data['firstname'];
     //extract lastname
     $lastname = $data['lastname'];
     //extract message text
     $message_txt = $data['message'];
     //extract subject.
     $subject = $data['subject'];
     //Create boundary
     $boundary = "-----=" . md5(rand());
     //=====Create header
     $header = "From:  <" . $email . ">" . $passage_ligne;
     $header .= "Reply-to:  <" . $mail . ">" . $passage_ligne;
     $header .= "MIME-Version: 1.0" . $passage_ligne;
     $header .= "Content-Type: multipart/alternative;" . $passage_ligne . " boundary=\"{$boundary}\"" . $passage_ligne;
     //==========
     //=====Create message.
     $message = $passage_ligne . "--" . $boundary . $passage_ligne;
     //=====Message
     $message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"" . $passage_ligne;
     $message .= "Content-Transfer-Encoding: 8bit" . $passage_ligne;
     $message .= $passage_ligne . $message_txt . $passage_ligne;
     //$message.= $passage_ligne."--".$boundary.$passage_ligne;
     $message .= $passage_ligne . "--" . $boundary . "--" . $passage_ligne;
     $message .= $passage_ligne . "--" . $boundary . "--" . $passage_ligne;
     //=====send e-mail
     mail($mail, $subject, $message, $header);
     //==========
 }
 function add_confirm_region(array $params)
 {
     $data = Request::getAssoc(array('nom'));
     $this->model->addRegion($data);
     header('Location: ' . Config::get('config.base') . '/admin/events/regions');
 }
 public function uploadphoto(array $params)
 {
     if (isset($params[0])) {
         $id_event = intval($params[0]);
         if (!($event = $this->model->getEvent($id_event))) {
             return array('errors' => array('L\'évenement demandé n\'existe pas !'));
         }
         $data = Request::getAssoc(array('title'));
         if (!in_array(null, $data, true)) {
             $photo = Request::get('photo', null, 'FILES');
             $minwidth = 640;
             $maxwidth = 1280;
             $minheight = 360;
             $maxheight = 720;
             $errors = array();
             if (!empty($photo['name'])) {
                 if (!$photo['error']) {
                     $extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
                     //1. strrchr renvoie l'extension avec le point (« . »).
                     //2. substr(chaine,1) ignore le premier caractère de chaine.
                     //3. strtolower met l'extension en minuscules.
                     $extension_upload = strtolower(substr(strrchr($photo['name'], '.'), 1));
                     if (in_array($extension_upload, $extensions_valides)) {
                         $sizeimage = getimagesize($photo['tmp_name']);
                         if ($sizeimage[0] >= $minwidth && $sizeimage[1] >= $minheight) {
                             if ($sizeimage[0] <= $maxwidth && $sizeimage[1] <= $maxheight) {
                                 $new_file_name = preg_replace('#[^a-z0-9]#', '', strtolower($data['title'])) . '-' . time() . '.' . $extension_upload;
                                 move_uploaded_file($photo['tmp_name'], UPLOAD_DIR . 'events' . DS . 'photos' . DS . $new_file_name);
                                 $data['photo'] = Config::get('config.base') . '/upload/events/photos/' . $new_file_name;
                             } else {
                                 $errors += array('Problème de dimension pour la photo : trop grand en hauteur et/ou en largeur');
                             }
                         } else {
                             $errors += array('Problème de dimension pour la photo : trop petit en hauteur et/ou en largeur');
                         }
                     } else {
                         $errors += array('Problème d\'extension pour la photo : votre fichier n\'est pas du type png, jpeg, jpg ou gif');
                     }
                 } else {
                     $errors += array('Problème de Serveur');
                 }
             } else {
                 $errors += array('Aucune photo n\'a été téléchargée !');
             }
             if (empty($errors)) {
                 $user_id = $_SESSION['userid'];
                 $creator = $this->model->getCreator($event['id_createur']);
                 $review = $user_id == $creator['id'] ? 1 : 0;
                 $photo_id = $this->model->addPhoto($id_event, $data, $review);
                 if ($review == 0) {
                     // Send a email to the creator of the event to tell him to review the photo
                     $headers = "From: " . strip_tags(Config::get('config.email')) . "\r\n";
                     $headers .= "Reply-To: " . strip_tags(Config::get('config.email')) . "\r\n";
                     $headers .= "MIME-Version: 1.0\r\n";
                     $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
                     $message = 'Bonjour <strong>' . $creator['nickname'] . '</strong>,<br><br>' . "\r\n";
                     $message .= 'Une photo a été ajouté à votre événement <a href="' . Config::get('config.base') . '/events/detail/' . $event['id'] . '">' . $event['nom'] . '</a> par un utilisateur.<br><br>' . "\r\n";
                     $message .= 'Afin que cette photo puisse être visible sur la page de votre événement, vous devez la valider en allant sur <a href="' . Config::get('config.base') . '/events/reviewphoto/' . $photo_id . '">ce lien</a>.<br><br>';
                     $message .= 'Merci par avance !';
                     mail($creator['email'], 'Event-You-All : Photo ajoutée à l\'un de vos événements', $message, $headers);
                 }
                 return array('event' => $event, 'success' => true, 'need_review' => $review == 0);
             }
             return array('event' => $event, 'errors' => $errors);
         }
         return array('event' => $event);
     }
     return false;
 }
 function confirmAdd()
 {
     $data = Request::getAssoc(array("text_modifyQ", "text_modifyR"));
     $this->model->confirmAdd($data);
 }
 public function basicsearch()
 {
     $search = Request::getAssoc(array('search'));
     if (isset($search) && !empty($search)) {
         $results = $this->model->basicsearchindatabase($search);
         //Function defined in model
         $data['advancedresults'] = $results;
         $k = 0;
         foreach ($data['advancedresults'] as $value) {
             $data['advancedresults'][$k]['theme'] = $this->model->getthemewithid($value['id_theme']);
             $data['advancedresults'][$k]['type'] = $this->model->gettypewithid($value['id_type']);
             $k += 1;
         }
         $themetest = $this->model->gettheme();
         $typetest = $this->model->gettype();
         $regiontest = $this->model->getregion();
         foreach ($regiontest as $index => $value) {
             if ($value['afficher'] == 1) {
                 $data['region'][$index] = $value;
             }
         }
         foreach ($typetest as $index => $value) {
             if ($value['afficher'] == 1) {
                 $data['type'][$index] = $value;
             }
         }
         foreach ($themetest as $index => $value) {
             if ($value['afficher'] == 1) {
                 $data['theme'][$index] = $value;
             }
         }
         return $data;
     } else {
         //Error if nothing has been typed in by the user
         return array("error" => "Veuillez insérer un mot-clef s'il vous plaît !");
     }
 }
 function modifyConfirm()
 {
     $data = Request::getAssoc(array('text_modify'));
     $this->model->modifyConfirm($data);
 }
 public function updatepassword(array $params)
 {
     $session = System::getSession();
     if ($session->isConnected()) {
         $user_id = $_SESSION['userid'];
     }
     $oldpassword = $this->model->getoldpasswordcheck($user_id);
     $modifications = Request::getAssoc(array('oldpassword', 'newpassword', 'newpasswordcheck'));
     if (empty($modifications['oldpassword']) && empty($modifications['newpassword']) && empty($modifications['newpasswordcheck'])) {
         $nothingyet = true;
     } else {
         $nothingyet = false;
     }
     $error = '';
     if ($oldpassword['password'] == sha1($modifications['oldpassword'])) {
         if ($modifications['newpassword'] == $modifications['newpasswordcheck']) {
             $a = $this->model->modifpassword($user_id, sha1($modifications['newpassword']));
         } else {
             $error .= 'Les deux mots de passe sont différents';
         }
     } else {
         $error .= 'Mot de Passe erroné !';
     }
     if (empty($error)) {
         $data = array('success' => true, 'error' => $error);
     } elseif ($nothingyet === true) {
         $data = array('success' => 'pasencore');
     } else {
         $data = array('success' => false, 'error' => $error);
     }
     return $data;
 }