예제 #1
0
 private function create_table($table_name)
 {
     $new_table = new Cms_Structure($table_name, TRUE);
     $default_params = Cms::get_default_table_params();
     $names_matching = Cms::get_names_matching();
     if (array_key_exists($table_name, $names_matching)) {
         $default_params['name'] = $names_matching[$table_name];
     } else {
         $default_params['name'] = str_replace('_', ' ', Text::ucfirst($new_table->get_alias()));
     }
     $default_column_config = Cms::get_default_column();
     $matching_rules = Cms::get_columns_matching_rules();
     $columns_data = Cms::get_dal_instance()->get_columns($new_table->get_table_name());
     $special_columns = Cms::get_special_columns();
     foreach ($special_columns as $param_name => $column_names) {
         if (array_key_exists($param_name, $default_params)) {
             foreach ($column_names as $col_name) {
                 if (array_key_exists($col_name, $columns_data)) {
                     $default_params[$param_name] = $col_name;
                 }
             }
         }
     }
     $new_table->set_options($default_params)->create_columns($columns_data, $matching_rules, $default_column_config)->save();
     return $new_table;
 }