} $logger = Logger::getLogger('services/saveProfile'); $numeroMembre = LemonLdap::getCurrentUserId(); $logger->debug("Found current user id: {$numeroMembre}"); //$logger->debug("Reveived form data: ".print_r($_POST,true)); $v = new Validator($_POST); $v->rule('required', ['adresse1', 'codePostal', 'ville', 'pays'])->message('{field} doit être renseigné.'); $v->rule('email', 'email')->message('{field} n\'est pas une adresse email valide.'); $v->rule('in', 'statut', [null, '', 'single', 'couple', 'deceased'])->message('{field} n\'est pas valide.'); $v->rule('integer', 'enfants')->message('{field} n\'est pas un nombre entier.'); $MAX_LENGTHS = ['adresse1' => 35, 'adresse2' => 35, 'adresse3' => 35, 'codePostal' => 20, 'ville' => 50, 'pays' => 50, 'telephone' => 20, 'email' => 127]; header("Content-type: application/json; charset=utf-8'"); if ($v->validate()) { $formValues = $_POST; foreach ($MAX_LENGTHS as $key => $value) { $formValues[$key] = Format::limitLength($formValues[$key], $MAX_LENGTHS[$key]); } $foundProfile = Doctrine::findMembre($numeroMembre); // Don't generate method calls to avoid potential security hole. $foundProfile->setStatut($formValues['statut']); $foundProfile->setEnfants($formValues['enfants']); $foundProfile->setDevise($formValues['devise']); $foundProfile->setCoordonnee('email', $formValues['email'], $formValues['emailPrive']); $foundProfile->setCoordonnee('phone', $formValues['telephone'], $formValues['telephonePrive']); $adresseValue = ['address' => trim("{$formValues['adresse1']}\n{$formValues['adresse2']}\n{$formValues['adresse3']}"), 'code' => $formValues['codePostal'], 'city' => $formValues['ville'], 'country' => $formValues['pays']]; $foundProfile->setCoordonnee('address', json_encode($adresseValue), $formValues['adressePrivee']); $foundProfile->setLangues(getArrayValue($formValues, 'langues')); $foundProfile->setCompetences(getArrayValue($formValues, 'competences')); $foundProfile->setPassions(getArrayValue($formValues, 'passions')); Doctrine::persist($foundProfile); Doctrine::flush();
public function jsonSerialize() { $email = $this->findCoordonnee('email'); $telephone = $this->findCoordonnee('phone'); $adresse = $this->findCoordonnee('address'); $adresseValue = $adresse ? $adresse->getCoordonnee() : null; $adresseTokens = $adresseValue ? explode("\n", $adresseValue->address) : []; while (count($adresseTokens) < 3) { array_push($adresseTokens, null); } return ['id' => $this->getIdMembre(), 'numero' => $this->getIdAncienSi(), 'nom' => $this->getNom(), 'prenom' => $this->getPrenom(), 'statut' => $this->getStatut(), 'enfants' => $this->getEnfants(), 'civilite' => $this->getCivilite(), 'genre' => $this->getGenre(), 'region' => $this->getRegion(), 'devise' => $this->getDevise(), 'dateNaissance' => Format::date($this->getDateNaissance()), 'dateInscription' => Format::date($this->getDateInscription()), 'email' => $email ? $email->getCoordonnee() : null, 'emailPrive' => $email ? $email->getReserveeGestionAsso() : null, 'telephone' => $telephone ? $telephone->getCoordonnee() : null, 'telephonePrive' => $telephone ? $telephone->getReserveeGestionAsso() : null, 'adressePrivee' => $adresse ? $adresse->getReserveeGestionAsso() : null, 'adresse1' => $adresseTokens[0], 'adresse2' => $adresseTokens[1], 'adresse3' => $adresseTokens[2], 'ville' => $adresseValue ? $adresseValue->city : null, 'codePostal' => $adresseValue ? $adresseValue->code : null, 'pays' => $adresseValue ? $adresseValue->country : null, 'langues' => $this->getLangues(), 'competences' => $this->getCompetences(), 'passions' => $this->getPassions()]; }