public static function node_field_creation($table_name, $node, $name, $translation, $count, $languages)
 {
     $count++;
     $model = $node->model;
     $type = 'string';
     $value = NULL;
     $trans_name = $name;
     $display_list = 'show';
     $display_item = 'show';
     $multiple = 0;
     $required = 0;
     $preset = 0;
     $new_row = false;
     $permission = NULL;
     $col_type = \DB::select(\DB::raw("SHOW FIELDS FROM " . $table_name . " where Field  = '" . $name . "'"))[0]->Type;
     $extras = [];
     $requests = [];
     $field_options = [];
     if (strpos($name, '_id') !== false) {
         $type = 'relation';
         $trans_name = str_replace('_id', '', $name);
         $value = $trans_name;
         if ($name == 'parent_id') {
             $preset = 1;
             if ($node->parent) {
                 $value = $node->parent->name;
             } else {
                 $value = $node->name;
             }
         }
     } else {
         if ($name == 'image' || $name == 'file' || $name == 'logo' || $name == 'isotype' || strpos($name, 'image') !== false || strpos($name, 'file') !== false) {
             if ($name == 'file' || strpos($name, 'file') !== false) {
                 $type = 'file';
             } else {
                 $type = 'image';
             }
             if ($col_type == 'text') {
                 $multiple = 1;
             }
             array_push($extras, ['type' => 'folder', 'value' => $node->name . '-' . $name]);
         } else {
             if (strpos($name, 'checkbox') !== false) {
                 $type = 'checkbox';
                 array_push($extras, ['type' => 'cols', 'value' => '12']);
             } else {
                 if ($col_type == 'text') {
                     $type = 'text';
                     $new_row = true;
                     array_push($extras, ['type' => 'class', 'value' => 'simple-textarea']);
                     array_push($extras, ['type' => 'cols', 'value' => '12']);
                     array_push($extras, ['type' => 'rows', 'value' => '3']);
                 } else {
                     if ($name == 'password') {
                         $type = 'password';
                     } else {
                         if ($name == 'map') {
                             $type = 'map';
                             array_push($extras, ['type' => 'cols', 'value' => '12']);
                         } else {
                             if ($col_type == 'tinyint(1)' || substr_count($col_type, 'enum') > 0) {
                                 $type = 'select';
                                 if (substr_count($col_type, 'enum') > 0) {
                                     $value_array = substr($col_type, 6, -2);
                                 } else {
                                     if ($col_type == 'tinyint(1)') {
                                         $value_array = "0','1";
                                     }
                                 }
                                 foreach (explode("','", $value_array) as $subvalue) {
                                     array_push($field_options, ['name' => $subvalue]);
                                 }
                             } else {
                                 if ($col_type == 'timestamp' || $col_type == 'date' || $col_type == 'time') {
                                     $type = 'date';
                                     if ($node->type == 'subchild') {
                                         array_push($extras, ['type' => 'class', 'value' => $col_type . '-control']);
                                     } else {
                                         array_push($extras, ['type' => 'class', 'value' => $col_type . 'picker']);
                                     }
                                     if ($name == 'created_at') {
                                         \Solunes\Master\App\Filter::create(['node_id' => $node->id, 'type' => 'field', 'subtype' => 'date', 'parameter' => 'created_at']);
                                     } else {
                                         if ($name == 'deleted_at') {
                                             $node->soft_delete = 1;
                                             $node->save();
                                         }
                                     }
                                 } else {
                                     if (strpos($name, 'array') !== false) {
                                         $type = 'array';
                                         array_push($extras, ['type' => 'rows', 'value' => '2']);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $hidden_names = ['id', 'site_id', 'slug', 'password', 'created_at', 'updated_at', 'deleted_at'];
     if (in_array($name, $hidden_names)) {
         $display_list = 'excel';
         $display_item = 'none';
         if ($name == 'password') {
             $display_item = 'admin';
         }
     } else {
         if ($name == 'section_id') {
             $display_item = 'admin';
             array_push($requests, ['action' => 'where', 'col' => $name, 'value_type' => 'relation', 'value' => 'node_pivot_id']);
         } else {
             if ($count > 6) {
                 $display_list = 'excel';
             }
         }
     }
     if ($node->type != 'field') {
         $rules = \FuncNode::node_check_rules($node, 'create');
         if (array_key_exists($name, $rules) && strpos($rules[$name], 'required') !== false) {
             $required = 1;
         }
     }
     $field = new \Solunes\Master\App\Field();
     $field->parent_id = $node->id;
     $field->name = $name;
     $field->trans_name = $trans_name;
     $field->type = $type;
     $field->order = $count;
     $field->display_list = $display_list;
     $field->display_item = $display_item;
     $field->translation = $translation;
     $field->multiple = $multiple;
     $field->new_row = $new_row;
     $field->value = $value;
     $field->preset = $preset;
     $field->required = $required;
     $field->save();
     \FuncNode::node_generate_request($node, $requests);
     \FuncNode::field_generate_extras($field, $extras);
     \FuncNode::field_generate_options($node, $field, $field_options, $languages);
     return $count;
 }