function add_custom_field($name, $label, $data_type, $max_size, $required_option, $default_value, $deleted, $ext1, $ext2, $ext3, $audited, $mass_update = 0, $duplicate_merge = 0) { $module_name = $this->module_name; $fields_meta_data = new FieldsMetaData(); $fields_meta_data->name = $name; $fields_meta_data->label = $label; $fields_meta_data->module = $module_name; $fields_meta_data->data_type = $data_type; $fields_meta_data->max_size = $max_size; $fields_meta_data->required_option = $required_option; $fields_meta_data->default_value = $default_value; $fields_meta_data->deleted = $deleted; $fields_meta_data->ext1 = $ext1; $fields_meta_data->ext2 = $ext2; $fields_meta_data->ext3 = $ext3; $fields_meta_data->audited = $audited; $fields_meta_data->duplicate_merge = $duplicate_merge; $fields_meta_data->mass_update = $mass_update; $fields_meta_data->insert(); $custom_table_name = $this->_get_custom_tbl_name(); $custom_table_exists = CustomFieldsTableSchema::custom_table_exists($custom_table_name); $custom_fields_table_schema = new CustomFieldsTableSchema($custom_table_name); if (!$custom_table_exists) { $custom_fields_table_schema->create_table(); } $result = $custom_fields_table_schema->add_column($name, $data_type, $required_option, $default_value); return $result; }
//// save the metadata to the fields_meta_data table //// foreach ($fields_meta_data->column_fields as $field) { if (isset($_REQUEST[$field])) { $fields_meta_data->{$field} = $_REQUEST[$field]; } } $fields_meta_data->save(); //// //// create/modify the custom field table //// $new_field = empty($_REQUEST['id']); $new_field = true; $custom_table_name = strtolower($fields_meta_data->custom_module) . '_cstm'; $custom_fields_table_schema = new CustomFieldsTableSchema($custom_table_name); if (!CustomFieldsTableSchema::custom_table_exists($custom_table_name)) { $custom_fields_table_schema->create_table(); } $column_name = $fields_meta_data->name; $field_label = $fields_meta_data->label; $data_type = $fields_meta_data->data_type; $max_size = $fields_meta_data->max_size; $required = $fields_meta_data->required_option; $default_value = $fields_meta_data->default_value; $module_dir = $fields_meta_data->custom_module; if ($new_field) { $custom_fields_table_schema->add_column($column_name, $data_type, $required, $default_value); $class_name = $beanList[$fields_meta_data->custom_module]; $custom_field = new DynamicField($fields_meta_data->custom_module); require_once "modules/{$module_dir}/{$class_name}.php"; $sugarbean_module = new $class_name();