MIOLO20
Carregando...
Procurando...
Nenhuma entrada encontrada
mdatetimefield.class
Ir para a documentação deste ficheiro.
1<?php
2
26$MIOLO->page->addScript('m_datetimefield.js');
27$MIOLO->page->addScript('m_util_validate.js');
28
30{
34 private $dateField;
35
39 private $timeField;
40
44 private $mainField;
45
54 public function __construct($name='', $value='', $label='', $readonly=false)
55 {
56 list($dateValue, $timeValue) = $value ? explode(' ', $value) : array('', '');
57 $this->dateField = new MCalendarField("{$name}Date", $dateValue, $label);
58 $this->timeField = new MTextField("{$name}Time", $timeValue);
59 $this->timeField->validator = new MTimeValidator($this->timeField->name, $label);
60
61 $this->dateField->addAttribute('onkeypress', "return MUtil_Validate_Mask('{$this->dateField->validator->mask}', event)");
62 $this->dateField->addAttribute('onkeyup', "MUtil_Apply_Mask('{$name}Date', '{$this->dateField->validator->mask}', event)");
63 $this->timeField->addAttribute('onkeypress', "return MUtil_Validate_Mask('{$this->timeField->validator->mask}', event)");
64 $this->timeField->addAttribute('onkeyup', "MUtil_Apply_Mask('{$name}Time', '{$this->timeField->validator->mask}', event)");
65
66 // Empty the validators to avoid multiple identical validation messages.
67 $this->dateField->validator = NULL;
68 $this->timeField->validator = NULL;
69
70 $this->mainField = new MTextField($name, $value, $label);
71 $this->mainField->addBoxStyle('display', 'none');
72 $this->mainField->validator = new MDATETimeDMYValidator($name, $label);
73
74 $event = "mdatetimefield.update('$name');";
75
76 $this->dateField->addAttribute('onblur', $event);
77 $this->timeField->addAttribute('onblur', $event);
78 $this->dateField->addAttribute('onchange', $event);
79 $this->timeField->addAttribute('onchange', $event);
80
81 parent::__construct("{$name}Container", array($this->dateField, $this->timeField, $this->mainField), 'horizontal');
82 $this->setReadOnly($readonly);
83 }
84
88 public function getDateField()
89 {
90 return $this->dateField;
91 }
92
96 public function setDateField($dateField)
97 {
98 $this->dateField = $dateField;
99 }
100
104 public function getTimeField()
105 {
106 return $this->timeField;
107 }
108
112 public function setTimeField($timeField)
113 {
114 $this->timeField = $timeField;
115 }
116
120 public function setDateTimeValue($value)
121 {
122 list($date, $time) = $value ? explode(' ', $value) : array('', '');
123 $this->dateField->setValue($date);
124 $this->timeField->setValue($time);
125 $this->mainField->setValue($value);
126 }
127
131 public function setReadOnly($readonly)
132 {
133 $this->dateField->setReadOnly($readonly);
134 $this->timeField->setReadOnly($readonly);
135 }
136
143 public function addAttribute($attribute, $action)
144 {
145 $this->dateField->addAttribute($attribute, $action);
146 $this->timeField->addAttribute($attribute, $action);
147 }
148
152 public function generate()
153 {
154 $fields = $this->dateField->generate() . $this->timeField->generate() . $this->mainField->generate();
155
156 $label = new MFieldLabel($this->dateField->id, $this->dateField->label . ':');
158
159 if ( $this->mainField->validator && ($this->mainField->validator->type == 'required') )
160 {
162 }
163
164 $label = new MSpan('', $label, 'label');
165 $span = new MSpan('', $fields, 'field');
166
167 return $label->generate() . $span->generate();
168 }
169}
170
171?>
const CLASS_CAPTION
Definição mcontrol.class:46
const CLASS_CAPTION_REQUIRED
Definição mcontrol.class:47
setDateField($dateField)
setReadOnly($readonly)
addAttribute($attribute, $action)
setTimeField($timeField)
__construct($name='', $value='', $label='', $readonly=false)
static getInstance()
Definição miolo.class:134
$action
Definição base.php:4