public function updateDefaultsFromObject() { $permissions = $this->object->Permissions->getPrimaryKeys(); if (isset($permissions[0])) { $this->setDefault('permissions', $permissions[0]); } parent::updateDefaultsFromObject(); $this->setDefault('password', ''); }
public function configure() { parent::configure(); // on configure les champs à afficher dans le formulaire $this->useFields(array('username', 'password', 'email_address', 'last_name', 'first_name')); // on modifie le widget du champs password pour mettre un champ // mot de passe $this->widgetSchema['password'] = new sfWidgetFormInputPassword(); // on ajoute des zones de saisie pour la confirmation // du mot de passe et de l'addresse mail $this->setWidget('repassword', new sfWidgetFormInputPassword()); $this->setWidget('re_email_address', new sfWidgetFormInputText()); // on configure la position des champs du formulaire $this->getWidgetSchema()->setPositions(array('id', 'username', 'password', 'repassword', 'email_address', 're_email_address', 'last_name', 'first_name')); // on configure tous les champs de type string $validatorString = new sfValidatorString(array('required' => true, 'min_length' => 3, 'max_length' => 40), array('min_length' => 'Mot de passe trop court (3 caractères minimum)', 'max_length' => 'Mot de passe trop long (40 caractères maximum)', 'required' => 'champ non renseigné')); $this->validatorSchema['username'] = $validatorString; $this->validatorSchema['last_name'] = $validatorString; $this->validatorSchema['first_name'] = $validatorString; // on ajoute les filtres pour valider le mot de passe $validatorPassword = new sfValidatorString(array('required' => true, 'min_length' => 6, 'max_length' => 20), array('min_length' => 'Mot de passe trop court (6 caractères minimum)', 'max_length' => 'Mot de passe trop long (20 caractères maximum)', 'required' => 'champ non renseigné')); $this->validatorSchema['password'] = $validatorPassword; $this->validatorSchema['repassword'] = $validatorPassword; // vérifie que les deux mot de passe sont identiques $this->validatorSchema->setPostValidator(new sfValidatorSchemaCompare('password', sfValidatorSchemaCompare::EQUAL, 'repassword', array(), array('invalid' => 'Les deux mot de passe ne sont pas identiques.'))); // active le filtre permettant de vérifier l'adresse e-mail $validatorMail = new sfValidatorEmail(array('max_length' => 255, 'required' => true), array('invalid' => 'Le format de l\'adresse e-mail est invalide', 'required' => 'champ non renseigné')); $this->validatorSchema['email_address'] = $validatorMail; $this->validatorSchema['re_email_address'] = $validatorMail; // verifie que les deux adresses e-mail sont identiques $this->validatorSchema->setPostValidator(new sfValidatorSchemaCompare('email_address', sfValidatorSchemaCompare::EQUAL, 're_email_address', array(), array('invalid' => 'Les deux adresses e-mail ne sont pas identiques.'))); // on personnalise les labels $this->widgetSchema->setLabels(array('username' => 'Nom d\'utilisateur* :', 'password' => 'Mot de passe* :', 'repassword' => 'Confirmation du mot de passe* :', 'email_address' => 'Adresse e-mail* :', 're_email_address' => 'Confirmation de l\'adresse e-mail* :', 'last_name' => 'Nom* :', 'first_name' => 'Prenom* :')); $profileForm = new IStoreCustomerForm($this->object->Profile); $this->embedMergeForm('Profile', $profileForm); $addressForm = new IStoreAddressForm($this->object->Address); $this->embedMergeForm('Adresse', $addressForm); }
public function configure() { parent::configure(); }