예제 #1
0
파일: Directory.php 프로젝트: fferriere/web
 /**
  * Charge le contexte de la classe.
  *
  * @param string $host
  * @param string $user
  * @param string $pass
  * @param string $db
  * @return Afup_Directory
  */
 public static function getInstance(PDO $pdo)
 {
     if (self::$instance === null) {
         self::$instance = new Afup_Directory($pdo);
     }
     return self::$instance;
 }
예제 #2
0
 /**
  * Formulaire d'édition. 
  *
  * @param array $get
  * @param array $post
  * @param array $errors
  * @return boolean
  * @todo aller chercher l'e-mail dans le fichier de configuration
  */
 public function editAction($get, $post, $errors)
 {
     $errors = array();
     // Input check
     if (isset($_POST['FormeJuridique'])) {
         if (get_magic_quotes_gpc()) {
             foreach ($_POST as $key => $value) {
                 if (!is_array($value)) {
                     $_POST[$key] = stripslashes($value);
                 }
             }
         }
         if (!Afup_Directory_Config::getLegalStatus($_POST['FormeJuridique'])) {
             $errors[] = "La forme juridique sélectionnée n'est pas correcte.";
         }
         if (!$_POST['RaisonSociale']) {
             $errors[] = "Veuillez spécifier la raison sociale (obligatoire).";
         }
         if (!$_POST['SIREN'] || !preg_match('/^[0-9 ]{9,17}$/', $_POST['SIREN'])) {
             $errors[] = "Veuillez spécifier le numéro SIREN/SIRET valide (obligatoire).";
         }
         if (!$_POST['Email'] || !preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z]{2,5}$/', $_POST['Email'])) {
             $errors[] = "Veuillez spécifier un e-mail valide (obligatoire).";
         }
         if (!$_POST['SiteWeb'] || !preg_match('#^http://.*$#', $_POST['SiteWeb'])) {
             $errors[] = "Veuillez spécifier un site web valide (obligatoire).";
         }
         if (!$_POST['Telephone'] || !preg_match('#[() +0-9]+$#', $_POST['Telephone'])) {
             $errors[] = "Veuillez spécifier un numéro de téléphone valide (obligatoire).";
         }
         if ($_POST['Fax'] && !preg_match('#[() +0-9]+$#', $_POST['Fax'])) {
             $errors[] = "Veuillez spécifier un numéro de fax valide.";
         }
         if (!$_POST['Adresse']) {
             $errors[] = "Veuillez spécifier une adresse (obligatoire).";
         }
         if (!$_POST['CodePostal'] || !preg_match('#[0-9]{5}$#', $_POST['CodePostal'])) {
             $errors[] = "Veuillez spécifier un code postal valide (obligatoire).";
         }
         if (!$_POST['Ville']) {
             $errors[] = "Veuillez spécifier une ville (obligatoire).";
         }
         if (!Afup_Directory_Config::getZone($_POST['Zone'])) {
             $errors[] = "Veuillez spécifier une zone correcte (obligatoire).";
         }
         if (!Afup_Directory_Config::getActivities($_POST['ActivitePrincipale'])) {
             $errors[] = "Veuillez spécifier une activité principale de la liste (obligatoire).";
         }
         if (isset($_POST['ActivitesSecondaires']) && count($_POST['ActivitesSecondaires']) && is_array($_POST['ActivitesSecondaires'])) {
             foreach ($_POST['ActivitesSecondaires'] as $activity) {
                 if (!Afup_Directory_Config::getActivities($activity)) {
                     $errors[] = "Au moins une de vos activités secondaires n'est pas correcte.";
                     break;
                 }
             }
         }
         if ($_POST['NumFormateur'] && !preg_match('#[0-9]+$#', $_POST['NumFormateur'])) {
             $errors[] = "Veuillez spécifier un numéro formateur valide.";
         }
         if (!$_POST['Password'] || strlen($_POST['Password']) < 5) {
             $errors[] = "Veuillez spécifier un mot de passe ayant au moins 5 caractères.";
         }
         if ($_POST['Password'] != $_POST['PasswordConfirmation']) {
             $errors[] = "Les mots de passe ne correspondent pas.";
         }
         $this->template->assign('values', $_POST);
         if (count($errors)) {
             $this->template->assign('formError', true);
             $this->template->assign('formErrors', $errors);
         } else {
             $this->template->assign('formError', false);
             unset($_POST['submit']);
             unset($_POST['PasswordConfirmation']);
             if ($siteNumber = Afup_Directory::getInstance($this->pdo)->addCompany($_POST) !== false) {
                 $this->template->assign('addAction', true);
                 $subject = utf8_decode("[ANNUAIRE AFUP] Nouveau site proposé dans l'annuaire");
                 $email = "*****@*****.**";
                 $body = "Un nouveau site vient d'être proposé dans l'annuaire professionnel.\n\n";
                 $body .= "Raison sociale : " . $_POST['RaisonSociale'] . "\n";
                 $body .= "Contact : " . $_POST['Email'];
                 $body = utf8_decode($body);
                 mail($email, $subject, $body);
             } else {
                 throw new Afup_Directory_Exception('AddCompany returns false');
             }
         }
     }
     // Data
     $choice = array('-- choisir --');
     $lists = array('legalStatus', 'zone', 'activities', 'companySize');
     foreach ($lists as $item) {
         $list = call_user_func(array('Afup_Directory_Config', 'get' . ucfirst($item)));
         ${$item . 'List'} = array_merge($choice, $list);
         $this->template->assign($item . 'List', ${$item . 'List'});
         if ($item == 'activities') {
             $this->template->assign($item . 'SecondList', $list);
         }
     }
 }