Development

Changeset 12876

You must first sign up to be able to contribute.

Changeset 12876

Show
Ignore:
Timestamp:
11/10/08 13:53:18 (1 year ago)
Author:
nicolas
Message:

[1.2] Added a way to define default messages for required and invalid error codes in sfValidatorBase class

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.2/UPGRADE_TO_1_2

    r12846 r12876  
    279279backward compatibility but you don't need to provide it anymore. 
    280280 
    281 Forms 
    282 ----- 
    283  
    284 In symfony 1.1, the `BaseFormPropel` was generated in the wrong place (under the 
    285 `lib/form/base/` directory). You need to move it to the `lib/form/` directory. 
     281Last, two new methods have been added to the `sfValidatorBase` class allowing to 
     282define default standard messages for `required` and `invalid` error codes: 
     283 
     284    [php] 
     285    sfValidatorBase::setRequiredMessage('this is required'); 
     286    sfValidatorBase::setInvalidMessage('this is invalid');  
    286287 
    287288Widgets 
     
    669670method: 
    670671 
    671   [php] 
    672   public function setup() 
    673  
    674     $this->setPlugins(array('sfDoctrinePlugin', 'sfCompat10Plugin')); 
    675  
     672    [php] 
     673    public function setup() 
     674   
     675      $this->setPlugins(array('sfDoctrinePlugin', 'sfCompat10Plugin')); 
     676   
    676677 
    677678The `orm` setting is deprecated in `settings.yml` as it is now automatically 
  • branches/1.2/lib/validator/sfValidatorBase.class.php

    r10894 r12876  
    2222{ 
    2323  protected static 
    24     $charset = 'UTF-8'; 
     24    $charset         = 'UTF-8', 
     25    $invalidMessage  = 'Invalid.', 
     26    $requiredMessage = 'Required.'; 
    2527 
    2628  protected 
     
    5153  { 
    5254    $this->options  = array_merge(array('required' => true, 'trim' => false, 'empty_value' => null), $this->options); 
    53     $this->messages = array_merge(array('required' => 'Required.', 'invalid' => 'Invalid.'), $this->messages); 
     55    $this->messages = array_merge(array('required' => self::$requiredMessage, 'invalid' => self::$invalidMessage), $this->messages); 
    5456 
    5557    $this->configure($options, $messages); 
     
    247249  { 
    248250    return $this->requiredOptions; 
     251  } 
     252 
     253  /** 
     254   * Sets the default invalid message 
     255   * 
     256   * @param string $message 
     257   */ 
     258  static public function setInvalidMessage($message) 
     259  { 
     260    self::$invalidMessage = $message; 
     261  } 
     262 
     263  /** 
     264   * Sets the default required message 
     265   * 
     266   * @param string $message 
     267   */ 
     268  static public function setRequiredMessage($message) 
     269  { 
     270    self::$requiredMessage = $message; 
    249271  } 
    250272 
  • branches/1.2/test/unit/validator/sfValidatorBaseTest.php

    r10895 r12876  
    1111require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 
    1212 
    13 $t = new lime_test(42, new lime_output_color()); 
     13$t = new lime_test(44, new lime_output_color()); 
    1414 
    1515class ValidatorIdentity extends sfValidatorBase 
     
    231231$v->setMessage('required', 'This is required.'); 
    232232$t->is($v->asString(), 'ValidatorIdentity({}, { required: \'This is required.\' })', '->asString() returns a string representation of the validator'); 
     233 
     234// setRequiredMessage() setInvalidMessage() 
     235$t->diag('setRequiredMessage() setInvalidMessage()'); 
     236ValidatorIdentity::setRequiredMessage('this is required by default'); 
     237ValidatorIdentity::setInvalidMessage('this is invalid by default'); 
     238$v = new ValidatorIdentity(); 
     239$defaultMessages = $v->getDefaultMessages(); 
     240$t->is($defaultMessages['required'], 'this is required by default', 'setRequiredMessage() sets the default required message'); 
     241$t->is($defaultMessages['invalid'], 'this is invalid by default', 'setInvalidMessage() sets the default required message'); 

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting.
Sensio Labs also supports several large Open-Source projects.