/** * 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); } } }
/** * Renvoit la liste des erreurs détectées dans ce modèle de données * * @return Fdap_Model_Errors */ public function validate() { $errors = new Fdap_Model_Errors(); if (!is_numeric($id) || $id <= 0) { $errors->addNewError('ID', 'Cet identifiant est incorrect', true); } if (!is_string($raisonSociale)) { $errors->addNewError('RaisonSociale', "Cette raison sociale est incorrecte", false); } if (!in_array($formeJuridique, Afup_Directory_Config::getLegalStatus())) { $errors->addNewError('FormeJuridique', "Cette forme juridique est inconnue", true); } return $errors; }