function formField($name = '', $value = '', $label = '', $type = '', $required = false, $readonly = false, $id = '', $properties = '') { $field_info = $this->getFieldInfo(); if (dev_not_null($name)) { $value = $value == '' ? $this->getField($name) : $value; $label = $label == '' ? $name : $label; $id = $id == '' ? $name : $id; if (isset($field_info[$name])) { $this_field = $field_info[$name]; $required = $required == '' ? !$this_field['Null'] || $this_field['Null'] == 'NO' ? true : false : $required; if ($type == '') { $field_type = strtolower($this_field['Type']); $field_type = $field_type == 'longtext' ? 'richtext' : (dev_is_substr($field_type, 'text') ? 'textarea' : $field_type); $field_type = dev_is_substr($field_type, 'lob') ? 'textarea' : $field_type; $field_type = dev_is_substr($field_type, 'int') ? 'int' : $field_type; $field_type = dev_is_substr($field_type, 'char') ? 'char' : $field_type; $field_type = dev_is_substr($field_type, 'date') ? 'date' : $field_type; if ($this_field['Key'] == 'PRI') { $field_type = 'hidden'; } elseif ($field_type == 'int' && isset($this_field['Length']) && $this_field['Length'] <= 1) { $field_type = 'check'; } elseif (dev_is_assoc($value)) { $field_type = 'select'; } elseif ($field_type == 'set' && dev_is_index($value)) { $field_type = 'radio'; } elseif ($field_type != 'set' && dev_is_index($value)) { $field_type = 'radio'; } switch ($field_type) { case 'int': $value = (int) $value; case 'char': default: $type = 'text'; break; case 'text': case 'textarea': case 'lob': $type = 'textarea'; break; case 'textarea': $type = 'textarea'; break; case 'date': $type = 'date'; break; case 'set': case 'check': if (dev_is_null($value)) { $value = 1; } else { $value = 1; } $type = 'checkbox'; break; case 'radio': $type = 'radio'; break; case 'select': $type = 'select'; break; case 'hidden': $type = 'hidden'; break; } } } } return "<tr><td>" . ($type != 'hidden' ? ($required ? '*' : '') . $label : '') . "</td><td>" . dev_draw_form_field($type, $name, '', $value, $required, $id, $readonly, $properties) . "</td></tr>"; }
function validateInput($field_name = '', $table = '') { $table = dev_is_null($table) ? $this->getReferenceTable() : $table; $field_info = $this->getFieldInfo(); $passed = true; if (isset($field_info[$field_name])) { $this_field = $field_info[$field_name]; $field_type = strtolower($this_field['Type']); //If duplicate entry if ($this_field['Key'] == 'PRI' || $this_field['Key'] == 'UNI') { if (!dev_check_dupes($field_name, $this->getField($field_name), $table)) { //$this->setStatusMessage("A row having field '$field_name' with value '" . $this->getField($field_name) . "' already exists."); // No longer needs to send failing state but still good to log // $passed = false; } } else { if ($this->getField($field_name) !== 0 && $this->getField($field_name) == '') { if (!$this_field['Null'] || $this_field['Null'] == 'NO') { if (dev_is_substr($field_type, 'date')) { $this->setField($field_name, dev_join_date($field_name)); if (!is_string($this->getField($field_name)) || !dev_is_date_string($this->getField($field_name))) { $this->setStatusMessage("Field '{$field_name}' contains an inaccurate date format!"); $passed = false; } } else { $this->setStatusMessage("Field '{$field_name}' cannot be empty!"); $passed = false; } } } else { //Correct Datatype/Size if (dev_is_substr($field_type, 'int') || dev_is_substr($field_type, 'double') || dev_is_substr($field_type, 'float')) { if (!is_numeric($this->getField($field_name))) { $this->setStatusMessage("Field '{$field_name}' must be numeric!"); $passed = false; } } if (dev_is_substr($field_type, 'char') || dev_is_substr($field_type, 'text')) { if (!is_string($this->getField($field_name))) { $this->setStatusMessage("Field '{$field_name}' is not text!"); $passed = false; } if (dev_not_null($this_field['LENGTH']) && strlen($this->getField($field_name)) > $this_field['LENGTH']) { $this->setStatusMessage("Field '{$field_name}' is greater than maximum allowed string length!"); $passed = false; } } if (dev_is_substr($field_type, 'date')) { if (!is_string($this->getField($field_name)) || !dev_is_date_string($this->getField($field_name))) { $this->setField($field_name, dev_join_date($field_name)); if (!is_string($this->getField($field_name)) || !dev_is_date_string($this->getField($field_name))) { $this->setStatusMessage("Field '{$field_name}' contains an inaccurate date format!"); $passed = false; } } } if (dev_is_substr($field_type, 'set')) { if (is_array($this->getField($field_name))) { $this->setField($field_name, implode(', ', $this->getField($field_name))); } elseif (!is_string($this->getField($field_name))) { $this->setStatusMessage("Field '{$field_name}' contains invalid input!"); $passed = false; } } } } } return $passed; }