38 require_once realpath(dirname(__FILE__)).
"/../field_renderers.inc";
79 if ($this->parent->readOnlyForm || $this->parent->isReadOnly($field)
80 || array_key_exists($field, $this->parent->hidden))
return "";
84 <script type=
'text/javascript'>
86 foreach($parts as $part => $limit)
88 if($part ==
"extension" && !$this->extension)
90 $partField = ($part) ?
"{$field}_{$part}" : $field;
99 function <?echo $this->parent->id?>_<?echo $field ?>_keyup(event)
101 var ctrl = document.id(
'<?echo "{$this->parent->id}_{$field}" ?>');
104 if (event.key ==
"Tab" || event.key ==
"Shift")
return;
106 if(ctrl.value.length == <?php echo $limit ?>)
108 var next = ctrl.getNext(
"input");
109 if(next && next.getAttribute(
'data-name') == ctrl.getAttribute(
'data-name'))
114 else if (ctrl.value.length >= <?echo $limit ?>)
116 ctrl.value = ctrl.value.substring(0, <?echo $limit ?>);
129 $value = $this->parent->data->get($field);
134 foreach($parts as $part => $limit)
136 if($part ==
"extension" && !$this->extension)
139 if($part ==
"area_code")
141 elseif($part ==
"exchange")
142 $pre =
") ";
143 elseif($part ==
"extension")
146 $pre =
"<b>-</b>";
148 $partField = ($part) ?
"{$field}_{$part}" : $field;
150 $onkeypress =
" onkeyup='{$this->parent->id}_{$partField}_keyup(event);'";
152 echo
"$pre<input id='{$this->parent->id}_{$partField}' style='width: auto' data-name='{$field}' type='text' name='{$partField}' value='".htmlspecialchars($valueParts[$part], ENT_QUOTES,
'UTF-8').
"' size='$limit' onkeypress='return maskInput(event, false);' $disable $onkeypress/> ";
164 echo $this->
format($field);
171 if ($mode ==
"range")
173 $from = htmlspecialchars($this->parent->params->get($field,
"from"), ENT_QUOTES,
'UTF-8');
174 $to = htmlspecialchars($this->parent->params->get($field,
"to"), ENT_QUOTES,
'UTF-8');
178 echo
"<td>From <input type='text' id='$field' name='$field:from' value='{$from}' size='25'> to <input type='text' name='$field:to' value='{$to}' size='25'></td>\n";
183 $value = htmlspecialchars($this->parent->params->get($field, $mode), ENT_QUOTES,
'UTF-8');
186 echo
"<td><input type='text' id='$field' name='$field:$mode' value='{$value}' size='50'></td>\n";
195 $partValues = array();
197 foreach($parts as $part => $limit)
199 $partField = ($part) ?
"{$field}_{$part}" : $field;
200 $partValues[] = $_POST[$partField];
203 $value = implode($partValues,
"");
204 $this->parent->data->set($field, $value);
217 $label = isset($this->label) ? $this->label : $this->parent->prettifyFieldName($field);
221 $message =
"Please supply phone as a 10-digit number.";
222 foreach($parts as $part => $limit)
224 $partField = ($part) ?
"{$field}_{$part}" : $field;
225 if($part ==
"extension")
continue;
226 $regexp =
"^\\d{" . $limit .
"}$";
FieldRenderer is the abstract base class for all FieldRenderers.
_startField($field, $styles="")
Internal method to generate the starting HTML for the field (including the label)
_endField($field)
Internal method to generate the closing HTML for the field.
_printLabel($field, $colspan=1, $styles="", $annotation="")
Internal method to generate the HTML for the field label.
FieldRenderer($parent)
Constructor.
Field renderer for zipcode data fields.
renderSearchField($field, $mode="equal")
FieldRenderers must override this method to provide the HTML implementation of the control displayed ...
PhoneNumberFieldRenderer(&$parent)
renderScriptOnePart($field, $limit)
renderScript($field)
FieldRenderers can override this method to provide any Javascript that their control requires for an ...
addValidatorsToForm($field, $required=false)
This method is called by the AutoForm to add any default input validators that are required by the Fi...
renderField($field)
FieldRenderers must override this method to provide the HTML implementation of the control used to ed...
preProcess($field="")
FieldRenderers can override this method to provide behavior that occurs prior to the saving of the pa...
static format($value, $template="")
static getValueParts($value)
Tests wheteher a field's value matches the supplied regular expression.