getAll("SHOW FIELDS IN " . $table); foreach($table_fields as $f) { $values = ''; $field_name = $f['Field']; $data_type = preg_replace('/^([a-z]+).*$/',"$1", $f['Type']); //Get the data type of the field $auto_handler = 'off'; $type = 'text'; if($field_name == 'id' and $f['Key'] == 'PRI') { $type = 'primary_key'; $auto_handler = 'primary_key'; } elseif($field_name == 'user_id' and $data_type == 'int') $auto_handler = 'current_user'; elseif($data_type == 'varchar' or $data_type == 'text') $type = 'text'; elseif($data_type == 'longtext' or $data_type == 'mediumtext') $type = 'editor'; elseif(strpos($data_type,'int')!==false and strpos($f['Type'],'unsigned')!==false) $type = 'list'; //If has an unsigned in it it means that it is a forign key elseif(strpos($data_type,'enum')!==false and strpos($field_name,'status')===false) { //Its an enum - but not status. $type = 'list'; //Could be a list or a radio button. $vals = preg_replace('/.*\((.+)\)/', "$1", $f['Type']); $vals = str_replace("'", "", $vals); $all_vals = explode(',', $vals); $values = ""; foreach($all_vals as $v) { $values .= "'$v'=>'".format($v)."',"; } } elseif($data_type == 'datetime') { if($field_name=='added_on' or $field_name=='created_on' or $field_name=='inserted_on') { $auto_handler = 'time_of_insert'; } elseif($field_name=='edited_on' or $field_name=='updated_on' or $field_name=='modified_on') { $auto_handler = 'time_of_update'; } $type = 'datetime'; } elseif($data_type == 'date') $type = 'date'; elseif((($data_type == 'enum' or $data_type == 'int' or $data_type == 'smallint') and $field_name == 'status')) { $field_data['status_funcionality'] = 1; $auto_handler = 'status_holder'; } else $type = 'text'; //Try to guess all the validation rules $validation = array(); if($field_name == 'name' or $field_name == 'title') $validation[] = 'must'; if(strpos($field_name,'email') !== false) $validation[] = 'email'; if($data_type == 'date') $validation[] = 'date'; if($data_type == 'datetime') $validation[] = 'datetime'; if(strpos($field_name,'username') !== false or strpos($field_name,'login') !== false) { $validation[] = 'must'; $validation[] = 'unique'; } if(findWord($field_name, array('age','year','price','count'))) $validation[] = 'number'; if(strpos($field_name,'password') !== false) $validation[] = 'password'; ///:TODO: Url, Phone, Address, Age, $Fields[] = array( 'name' => $field_name, 'validation' => $validation, 'type' => $type, 'info' => $f, 'data_type' => $data_type, 'values' => $values, 'auto_handler' => $auto_handler, ); } } $field_count = 1; foreach($Fields as $f) { $list = 0; if(findWord($f['name'], array('name','username','login','title','url','website'))) $list = 1; //Stuff that must be listed. $date_format = ''; if($f['type'] == 'date') $date_format = '%d %b %Y'; elseif($f['type'] == 'datetime') $date_format = '%d %b %Y, %h:%i %p'; $filetypes = ''; if(findWord($f['name'], array('image','pic','photo','img','logo'))) $filetypes = 'jpg,jpeg,png,gif'; $field_data["field_title_$field_count"] = format($f['name']); $field_data["field_name_$field_count"] = $f['name']; $field_data["field_list_$field_count"] = $list; $field_data["field_type_$field_count"] = $f['type']; $field_data["field_date_format_$field_count"] = $date_format; $field_data["field_show_time_$field_count"] = ($f['type'] == 'datetime') ? 1 : 0; $field_data["field_password_encrypt_$field_count"] = ''; $field_data["field_password_salt_$field_count"] = ''; $field_data["field_filetype_$field_count"] = $filetypes; $field_data["list_values_$field_count"] = $f['values']; $field_data["field_validation_$field_count"] = $f['validation']; $field_data["auto_handler_$field_count"] = $f['auto_handler']; $field_data["field_foreign_key_reference_$field_count"] = str_replace('_', '.', $f['name']); $field_count++; } $total_fields = $field_count - 1; function findWord($needle, $haystack) { foreach($haystack as $str) { if(preg_match("/\b$needle\b/i", $str)) return true; } return false; } function findString($needle, $haystack) { foreach($haystack as $str) { if(stripos($str, $needle) !== false) return true; } return false; } $template->addResource('http://localhost/iframe/js/plugins/jsl_debug.js','js',1); render();