| 1 |
<?php |
| 2 |
class AccuaForm_Element_Date extends Element_Textbox { |
| 3 |
protected $minDate = null; |
| 4 |
protected $maxDate = null; |
| 5 |
public function __construct($label, $name, ?array $properties = null) { |
| 6 |
parent::__construct($label,$name,$properties); |
| 7 |
$this->attributes['type'] = 'date'; |
| 8 |
$this->attributes['pattern'] = '\d{4}-\d{2}-\d{2}'; |
| 9 |
// Extract minDate and maxDate from properties if present |
| 10 |
if ($properties && isset($properties['minDate'])) { |
| 11 |
$this->minDate = $properties['minDate']; |
| 12 |
} |
| 13 |
if ($properties && isset($properties['maxDate'])) { |
| 14 |
$this->maxDate = $properties['maxDate']; |
| 15 |
} |
| 16 |
// translators: %element% is the field label. |
| 17 |
$date_error_msg = __( "Attention: '%element%' must contain a valid date.", 'contact-forms' ); |
| 18 |
$validator = new AccuaForm_Validation_Date( |
| 19 |
str_replace( '%element%', $label, $date_error_msg ) |
| 20 |
); |
| 21 |
$validator->configure(array('minDate' => $this->minDate, 'maxDate'=> $this->maxDate)); |
| 22 |
$this->setValidation($validator); |
| 23 |
} |
| 24 |
} |
| 25 |
|