Créer un compte ou loggez-vous pour pouvoir ajouter, commenter et noter les snippets.

Navigation

Tags relatifs

my Symfony Plugins

Plugins demos


My bookmarks

Vous pouvez commenter/noter en utilisant le compte anonymous (mot de passe: anonymous)
You can comment/rate using the anonymous account (password: anonymous).

Snippets taggés : "form validator" Snippets taggés : "form validator"

[symfony 1.1] Classe de formulaire typique - 714 view(s)

<?php
 
/**
 * Form to add a classified ad.
 * 
 * @author loic.vernet
 * @since  7 august 08
 *
 * @package    form
 */
 
class qbNewThreadForm extends qbThreadForm 
{
  // Default mask to create fields names
  public static $main_fields_name = 'qb_thread';
 
  // Default labels
  protected $labels = array(
 
    // Thread
    'title'         => 'Sujet',
    'category_id'   => 'Forum',
 
    // Contact form
    'qb_post'       => 'Post',
  );
 
  // Default fields to keep
  protected $fields_to_keep = array(
 
    // Thread
    'id',
    'category_id',
 
    // Post
    'qb_post',
  );
 
  // Liste of field that can't be modified by direct input values
  protected static $protected_fields = array(
  );
 
  /**
   * Configuration of form.
   */
  public function configure()
  {
    // Build widgets
    $this->setWidgetOptions();
 
    // Set wdigets
    $this->processWidgets();
 
    // Set validators    
    $this->processValidators();
 
    // Embed other forms
    $this->embedForms();
  }
 
  /**
   * Set generic options for widgets.
   * 
   * @author loic.vernet
   * @since
   */
  protected function setWidgetOptions()
  {
    // name format
    $this->widgetSchema->setNameFormat(self::$main_fields_name. '[%s]');
 
    // Set labels    
    $this->setLabels($this->labels);
 
    // Allow extra fields for all forms
    $this->allowExtraFields();
  }
 
  /**
   * set all widgets.
   * 
   * @author loic.vernet
   * @since
   */
  public function processWidgets()
  {
    $this->removeAllFieldsExcept($this->fields_to_keep);
 
    $this->widgetSchema['category_id'] = new sfWidgetFormPropelSelect(
      array(
        'model'     => 'qbCategory', 
        'add_empty' => false,
        //'criteria'  => ipAdBasePeer::getCategoriesCriteria()
    ));
 
    $this->widgetSchema['title'] = new sfWidgetFormInput();
  }  
 
  /**
   * Set all validators.
   * 
   * @author loic.vernet
   * @since 
   */
  public function processValidators()
  {
    $this->validatorSchema['category_id'] = new sfValidatorString(
        array('required' => true),
        array('required' => 'Veuillez choisir un forum')
    );
 
    $this->validatorSchema['title'] = new sfValidatorString(
        array('required' => true),
        array('required' => 'Veuillez choisir un titre pour le sujet')
    );
  }
 
  /**
   * Embed other forms to the current form.
   * 
   * @author loic.vernet 
   * @since 
   */
  protected function embedForms()
  {
  }
}
par COil le 2008-09-29, taggé : class  field  form  labels  symfony  validator  widget 
(1 commentaire)

[symfony 1.1 / 1.2] : Validation OR sur 2 champs différents - 870 view(s)

    // Check category or query
    $v = new sfValidatorCallback(array(
      'callback' => array($this, 'checkCategoryOrQuery')
    ,) ,
    array(
      'invalid'  => 'Veuillez choisir une rubrique ou un mot clé'
    ));
 
    $this->validatorSchema->setPostValidator($v);

et le callback qui va bien:

  /**
   * Check if a category or a keyword has been set.
   *
   * @param sfValidator $validator
   * @param Array $value Form values
   * @param Array $arguments  Validation arguments
   * 
   * @return mixed
   */
  public function checkCategoryOrQuery($validator, $value, $arguments)
  {
    if (empty($value['category_id']) && empty($value['nature_id']))
    {
      throw new sfValidatorError($validator, 'invalid');
    }
 
    return $value;
  }
par COil le 2008-09-29, taggé : callback  form  symfony  validation  validator 
(3 commentaires)

[symfony 1.0] Fichier de validation typique - 384 view(s)

methods:
  post:
    - "user_profile{login}"
    - "user_profile{password}"
    - "user_profile{check_password}"
    - "user_profile{email}"
    - "user_profile{civility}"
    - "user_profile{first_name}"
    - "user_profile{last_name}"
    - "user_profile{birth_date}"
    - "user_profile{address}"
    - "user_profile{postal_code}"
    - "user_profile{town}"
    - "captcha"
    - "user_profile{is_newsletter_subscribed}"
    - "user_profile{is_partners_subscribed}"
    - "user_profile{photo}"
    - "user_profile{personal_url}"
 
fillin:
  enabled: true
  param:
    name: form_register_member
 
names:
  user_profile{login}:
    required:      Yes
    required_msg:  le login est obligatoire
    validators:    [usernameValidator, loginValidator]
 
  user_profile{password}:
    required:      Yes
    required_msg:  le mot de passe est requis
    validators:    passwordValidator
 
  user_profile{check_password}:
    required:     Yes
    required_msg: La confirmation du mot de passe est obligatoire 
    validators:   passwordValidator
 
  user_profile{email}:
    required:      Yes
    required_msg:  l'email est obligatoire
    validators:    [emailValidator, mailuniqValidator]
 
  user_profile{civility}:
    required:      Yes
    required_msg:  veuillez choisir votre civilité
 
  user_profile{first_name}:
    required:      Yes
    required_msg:  le prénom est obligatoire
    validators:    usernameValidator
 
  user_profile{last_name}:
    required:      Yes
    required_msg:  le nom est obligatoire
    validators:    usernameValidator
 
  user_profile{birth_date}:
    required:      Yes
    required_msg:  le nom est obligatoire
    validators:    usernameValidator     
 
  user_profile{address}:
    required:     Yes
    required_msg: l'adresse est obligatoire
 
  user_profile{postal_code}:
    required:      Yes
    required_msg:  le code postal est obligatoire
    validators:    zipcodeValidator

  user_profile{town}:
    required:     Yes
    required_msg: la ville est obligatoire
 
  captcha:
    required:      Yes
    required_msg:  vous devez recopier le code
    validators:    captchaValidator
 
  user_profile{is_newsletter_subscribed}:
    required:     no
 
  user_profile{is_partners_subscribed}:
    required:     no
 
  user_profile{photo}:
    required:     no
 
  user_profile{personal_url}:
    required:     no
 
passwordValidator:
  class:          sfCompareValidator
  param:
    check:          passconf
    compare_error:  les mots de passe ne correspondent pas
 
loginValidator:
  class:            sfPropelUniqueValidator
  param:
    class:          sfGuardUser
    column:         username
    unique_error:   ce login est déjà enregistré, choisissez en un autre.
 
mailuniqValidator:
  class:            sfPropelUniqueValidator
  param:
    class:          UserProfile
    column:         email
    unique_error:   cet email est déjà enregistré, choisissez en un autre.

zipcodeValidator:
  class:            sfNumberValidator
  nan_error:        Veuillez n'entrer que des chiffres
  min:              5
  min_error:        le code postal est au minimum composé de 5 chiffres
 
usernameValidator:      
  class: sfStringValidator
  param:
    min: 3
    min_error: ce login doit être plus long
 
emailValidator:
  class:         sfEmailValidator
  param:
    email_error: l'adresse email n'est pas valide
 
captchaValidator:
  class:         captchaValidator
  param:
    error:       vous devez recopier correctement le code de validation
 
 
 
 
 
methods:         [post]     # This is the default setting
 
fillin:
  enabled:       true
  param:         
    name:        send_page_to_friend_form
    #skip_fields:   [email]  # Do not repopulate these fields
    #exclude_types: [hidden, password] # Do not repopulate these field types
    #check_types:   [text, checkbox, radio, password, hidden] # Do repopulate these
 
validators:
  myStringValidator:
    class: sfStringValidator
    param:
      min:       2
      min_error: This field is too short (2 characters minimum)
      max:       100
      max_error: This field is too long (100 characters maximum)
 
fields:
  name:
    required:
      msg:       The name field cannot be left blank
    myStringValidator:
  email:
    required:
      msg:       The email field cannot be left blank
    myStringValidator:
    sfEmailValidator:
      email_error:  This email address is invalid
  age:
    sfNumberValidator
      nan_error:    Please enter an integer
      min:          0
      min_error:    "You're not even born. How do you want to send a message?"
      max:          120
      max_error:    "Hey, grandma, aren't you too old to surf on the Internet?"
  message:
    required:
      msg:          The message field cannot be left blank
par COil le 2008-09-29, taggé : config  form  symfony  validation  validator 
(1 commentaire)
Debug toolbar