Example #1
0
 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>";
 }
Example #2
0
 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;
 }