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; }