Implemented new date validation for autoresponder.
| | |
| | | { |
| | | function start_date($field_name, $field_value, $validator) |
| | | { |
| | | global $app; |
| | | |
| | | // save field value for later use in end_date() |
| | | $this->start_date = $field_value; |
| | | |
| | | if ($this->_datetime_selected($field_value)) { |
| | | // We just require a start date be set |
| | | return; |
| | | } |
| | | if($_POST['autoresponder'] == 'y') { |
| | | return "No start date selected"; |
| | | if($_POST['autoresponder'] == 'y' && $field_value == '') { |
| | | // we need a start date when autoresponder is on |
| | | return $app->tform->lng($validator['errmsg']).'<br />'; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | $start_date = $this->start_date; |
| | | //$start_date = $app->tform_actions->dataRecord['autoresponder_start_date']; |
| | | |
| | | $_msg = $this->not_empty('autoresponder_start_date', $start_date, $validator); |
| | | if (!$_msg) // Start date set |
| | | { |
| | | if ( !($_msg = $this->not_empty($field_name, $field_value, $validator)) ) // End date set |
| | | { |
| | | $validator['compare'] = $this->_get_timestamp_value($start_date); |
| | | $_msg = $this->is_greater($field_name, $field_value, $validator); |
| | | } |
| | | |
| | | return $_msg; |
| | | |
| | | // Parse date |
| | | $start_date_array = date_parse_from_format($app->lng('conf_format_datetime'),$start_date); |
| | | $end_date_array = date_parse_from_format($app->lng('conf_format_datetime'),$field_value); |
| | | |
| | | //calculate timestamps |
| | | $start_date_tstamp = mktime($start_date_array['hour'], $start_date_array['minute'], $start_date_array['second'], $start_date_array['month'], $start_date_array['day'], $start_date_array['year']); |
| | | $end_date_tstamp = mktime($end_date_array['hour'], $end_date_array['minute'], $end_date_array['second'], $end_date_array['month'], $end_date_array['day'], $end_date_array['year']); |
| | | |
| | | // End date has to be > start date |
| | | if($end_date_tstamp <= $start_date_tstamp) { |
| | | return $app->tform->lng($validator['errmsg']).'<br />'; |
| | | } |
| | | } |
| | | |
| | |
| | | 'autoresponder_start_date' => array ( |
| | | 'datatype' => 'DATETIME', |
| | | 'formtype' => 'DATETIME', |
| | | 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'validators'=> array ( |
| | | 0 => array ( 'type' => 'ISDATETIME', |
| | | 'allowempty' => 'y', |
| | | 'errmsg'=> 'autoresponder_start_date_is_no_date'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_autoresponder', |
| | | 'function' => 'start_date', |
| | | 'errmsg'=> 'autoresponder_start_date_is_required'), |
| | |
| | | 'autoresponder_end_date' => array ( |
| | | 'datatype' => 'DATETIME', |
| | | 'formtype' => 'DATETIME', |
| | | 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'validators'=> array ( |
| | | 0 => array ( 'type' => 'ISDATETIME', |
| | | 'allowempty' => 'y', |
| | | 'errmsg'=> 'autoresponder_end_date_is_no_date'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_autoresponder', |
| | | 'function' => 'end_date', |
| | | 'errmsg'=> 'autoresponder_end_date_isgreater'), |
| | |
| | | $wb["autoresponder_start_date_ispast"] = 'Start date cannot be in the past.'; |
| | | $wb["autoresponder_end_date_txt"] = 'End by'; |
| | | $wb["autoresponder_end_date_isgreater"] = 'End date must be set and be later than start date.'; |
| | | $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; |
| | | $wb["no_domain_perm"] = 'You have no permission for this domain.'; |
| | | $wb["error_no_pwd"] = 'Password is empty.'; |
| | | $wb["quota_error_isint"] = 'Mailbox size must be a number.'; |
| | |
| | | $this->dataRecord["login"] = isset($this->dataRecord["email"]) ? $this->dataRecord["email"] : ''; |
| | | } |
| | | //* if autoresponder checkbox not selected, do not save dates |
| | | if (!isset($_POST['autoresponder']) && array_key_exists('autoresponder_start_date', $_POST)) { |
| | | $this->dataRecord['autoresponder_start_date'] = array_map(create_function('$item', 'return 0;'), $this->dataRecord['autoresponder_start_date']); |
| | | $this->dataRecord['autoresponder_end_date'] = array_map(create_function('$item', 'return 0;'), $this->dataRecord['autoresponder_end_date']); |
| | | if (!isset($_POST['autoresponder'])) { |
| | | $this->dataRecord['autoresponder_start_date'] = ''; |
| | | $this->dataRecord['autoresponder_end_date'] = ''; |
| | | } |
| | | |
| | | parent::onSubmit(); |
| | |
| | | </div> |
| | | <div class="form-group"> |
| | | <label for="autoresponder_start_date" class="col-sm-3 control-label">{tmpl_var name='autoresponder_start_date_txt'}</label> |
| | | <div class="col-sm-9">{tmpl_var name='autoresponder_start_date'} |
| | | <a href="javascript:AR_SetNow();">{tmpl_var name='now_txt'}</a></div> |
| | | <div class="col-sm-9">{tmpl_var name='autoresponder_start_date'}</div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label for="autoresponder_end_date" class="col-sm-3 control-label">{tmpl_var name='autoresponder_end_date_txt'}</label> |