Development

Changeset 1239

You must first sign up to be able to contribute.

Changeset 1239

Show
Ignore:
Timestamp:
04/20/06 08:59:36 (3 years ago)
Author:
fabien
Message:

fixed automatic repopulation when there is no validation rules in validate.yml configuration file

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/config/sfValidatorConfigHandler.class.php

    r1216 r1239  
    8181    $this->loadAttributes($configFiles, $methods, $names, $validators, $config, $list); 
    8282 
     83    // fill-in filter configuration 
     84    $fillin = var_export(isset($config['fillin']) ? $config['fillin'] : array(), true); 
     85 
    8386    // generate GET file/parameter data 
    8487    $data[] = "if (\$_SERVER['REQUEST_METHOD'] == 'GET')"; 
    8588    $data[] = "{"; 
    8689 
    87     $this->generateRegistration('GET', $data, $methods, $names, $validators); 
     90    $ret = $this->generateRegistration('GET', $data, $methods, $names, $validators); 
     91 
     92    if ($ret) 
     93    { 
     94      $data[] = sprintf("  \$context->getRequest()->setAttribute('fillin', %s, 'symfony/filter');", $fillin); 
     95    } 
    8896 
    8997    // generate POST file/parameter data 
     
    93101    $data[] = "{"; 
    94102 
    95     $this->generateRegistration('POST', $data, $methods, $names, $validators); 
     103    $ret = $this->generateRegistration('POST', $data, $methods, $names, $validators); 
     104 
     105    if ($ret) 
     106    { 
     107      $data[] = sprintf("  \$context->getRequest()->setAttribute('fillin', %s, 'symfony/filter');", $fillin); 
     108    } 
    96109 
    97110    $data[] = "}"; 
    98  
    99     $fillin = isset($config['fillin']) ? $config['fillin'] : array(); 
    100111 
    101112    // compile data 
    102113    $retval = sprintf("<?php\n". 
    103114                      "// auto-generated by sfValidatorConfigHandler\n". 
    104                       "// date: %s\n%s\n%s\n\$context->getRequest()->setAttribute('fillin', %s, 'symfony/filter');\n?>", date('Y/m/d H:i:s'), 
    105                       implode("\n", $includes), implode("\n", $data), var_export($fillin, true)); 
     115                      "// date: %s\n%s\n%s\n?>", date('Y/m/d H:i:s'), 
     116                      implode("\n", $includes), implode("\n", $data)); 
    106117 
    107118    return $retval; 
     
    116127   * @param array  An associative array of file/parameter data. 
    117128   * @param array  A validators array. 
     129   *  
     130   * @return boolean Returns true if there is some validators for this file/parameter 
    118131   */ 
    119132  private function generateRegistration($method, &$data, &$methods, &$names, &$validators) 
    120133  { 
    121134    // setup validator array 
    122     $data[] = "\t\$validators = array();"; 
     135    $data[] = "  \$validators = array();"; 
    123136 
    124137    if (!isset($methods[$method])) 
     
    157170          $validator =& $validators[$valName]; 
    158171 
    159           $data[] = sprintf("\t\$validators['%s'] = new %s();\n". 
    160                             "\t\$validators['%s']->initialize(%s, %s);", 
     172          $data[] = sprintf("  \$validators['%s'] = new %s();\n". 
     173                            "  \$validators['%s']->initialize(%s, %s);", 
    161174                            $valName, $validator['class'], $valName, '$context', $validator['parameters']); 
    162175 
     
    185198 
    186199      // register file/parameter 
    187       $data[] = sprintf("\t\$validatorManager->registerName('%s', %s, %s, %s, %s, %s);", 
     200      $data[] = sprintf("  \$validatorManager->registerName('%s', %s, %s, %s, %s, %s);", 
    188201                        $name, $attributes['required'], 
    189202                        $attributes['required_msg'], 
     
    194207      foreach ($attributes['validators'] as &$validator) 
    195208      { 
    196         $data[] = sprintf("\t\$validatorManager->registerValidator('%s', %s, %s);", $name, 
     209        $data[] = sprintf("  \$validatorManager->registerValidator('%s', %s, %s);", $name, 
    197210                          "\$validators['$validator']", 
    198211                          $attributes['parent']); 
    199212      } 
    200213    } 
     214 
     215    return count($methods[$method]) ? true : false; 
    201216  } 
    202217