// 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; }
/** * Generate the javascript that will initialialize the date picker. * * @return String */ protected function jqGetJavascript($name) { sfLoader::loadHelpers('Javascript'); $main_name_id = $this->generateId($name); $js = " jQuery(document).ready(function() { $('#%s_%s').datepicker({ %s %s beforeShow: function() { readLinked('%s', '%s'); }, onSelect: function() { updateLinked(jQuery('#%s_%s').val(), '%s'); }, dateFormat: '%s' }); $('#%s_month, #%s_year').change( function() { checkLinkedDays('%s'); }); checkLinkedDays('%s'); }); "; $js = sprintf($js, $main_name_id, self::JQ_DEFAULT_DATEPICKUP_ID, $this->getOption('minDate'), $this->getOption('maxDate'), $main_name_id, self::JQ_DEFAULT_DATEPICKUP_ID, $main_name_id, self::JQ_DEFAULT_DATEPICKUP_ID, $main_name_id, $this->jqGetTranslatedDateFormat(), $main_name_id, $main_name_id, $main_name_id, $main_name_id ); return javascript_tag($js); }
logs
8047.5 KB