1) ? 'text_textarea' : 'text_textfield'; $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_module = 'text', widget_type = '". $new_widget_type ."' WHERE field_name = '{$field_instance['field_name']}' AND type_name = '{$field_instance['type_name']}'"); } content_associate_fields('text'); return $ret; } /** * Set all columns to accept NULL values and set empty string values in the * database to NULL. * * Leaving it up to module developers to handle conversion of numbers to * NULL values, since there are times when zeros are valid data and times * when they should be NULL. * */ function text_update_6001() { $ret = array(); // Get the latest cache values and schema. content_clear_type_cache(TRUE, TRUE); include_once('./'. drupal_get_path('module', 'content') .'/content.install'); $types = content_types_install(); foreach ($types as $type_name => $fields) { foreach ($fields as $field) { switch ($field['type']) { case 'text': $db_info = content_database_info($field); $table = $db_info['table']; foreach ($db_info['columns'] as $column => $attributes) { $attributes['not null'] = FALSE; $column = $attributes['column']; db_change_field($ret, $table, $column, $column, $attributes); // TODO : errors on text/blob columns : no default value allowed (!) db_field_set_no_default($ret, $table, $column); if ($attributes['type'] == 'varchar' || $attributes['type'] == 'text') { $ret[] = update_sql("UPDATE {". $table ."} SET ". $column ." = NULL WHERE ". $column ." = ''"); } else { // TODO : replace format = 0 with format = NULL ?? Is this right ? $ret[] = update_sql("UPDATE {". $table ."} SET ". $column ." = NULL WHERE ". $column ." = 0"); } } break; } } } return $ret; }