예제 #1
0
 public function getJavaScripts()
 {
     return array('/js/FLoginForm.js');
     $url_params = sfJqueryFormValidationRules::getUrlParams();
     $url_params['form'] = get_class($this);
     return array_merge(parent::getJavaScripts(), array(url_for($url_params)));
 }
 public function execute($filterChain)
 {
     $filterChain->execute();
     $action = $this->getContext()->getActionStack()->getLastEntry()->getActionInstance();
     foreach ($action->getVarHolder()->getAll() as $name => $value) {
         if ($value instanceof sfForm && (sfConfig::get('app_sf_jquery_form_validation_default') !== 'disabled' || in_array(get_class($value), sfConfig::get('app_sf_jquery_form_validation_forms')))) {
             $url_params = sfJqueryFormValidationRules::getUrlParams();
             $url_params['form'] = get_class($value);
             $embedded_forms = array();
             foreach ($value->getEmbeddedForms() as $name => $embedded_form) {
                 $url_params['embedded_form'][$name] = get_class($embedded_form);
             }
             if (sizeof($embedded_forms) > 0) {
                 $url_params['embedded_form'] = $embedded_forms;
             }
             use_dynamic_javascript(url_for($url_params));
         }
     }
 }
 private function parsePostValidator(sfForm $form, sfValidatorBase $validator)
 {
   
   
   $options = $validator->getOptions();
   $messages = $validator->getMessages();
   
   $rules = array();
   $formName = $form->getName();
   $validatorName = get_class($validator);
   switch($validatorName)
   {
     case 'sfValidatorAnd':
       $return = array();
       foreach ($validator->getValidators() as $v) {
         $return = array_merge($return, (array)$this->parsePostValidator($form, $v));
       }
       return $return;
             
     case 'sfValidatorDoctrineUnique':
     case 'sfValidatorPropelUnique':
       $return = array();
       foreach ($options['column'] as $column) {
         extract(sfJqueryFormValidationRules::getUrlParams());
         $rules['remote'] = sfContext::getInstance()->getController()->genUrl(
           "{$module}/remote?form=" . get_class($form) . "&validator={$validatorName}");
         $rules['messages'] = array(
           'remote' => $messages['invalid'],
         );
         $return[] = "$('#{$formName}_{$column}').rules('add', " . json_encode($rules) . ");";
       }
       return $return;
       
     case 'sfValidatorSchemaCompare':
       if($options['operator'] == '==' || $options['operator'] == '===') {
         $rules['equalTo'] = "#{$formName}_{$options['left_field']}";
         $rules['messages'] = array(
           'equalTo' => $messages['invalid'],
         );
         return "$('#{$formName}_{$options['right_field']}').rules('add', " . json_encode($rules) . ");";
       }
       break;
   }
 }