summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/field/field.form.inc2
-rw-r--r--modules/field_ui/field_ui.admin.inc6
-rw-r--r--modules/taxonomy/taxonomy.module30
3 files changed, 26 insertions, 12 deletions
diff --git a/modules/field/field.form.inc b/modules/field/field.form.inc
index 937b6d226..ccc55c789 100644
--- a/modules/field/field.form.inc
+++ b/modules/field/field.form.inc
@@ -39,7 +39,7 @@ function field_default_form($obj_type, $object, $field, $instance, $langcode, $i
// Populate widgets with default values when creating a new object.
if (empty($items) && empty($id)) {
- $items = field_get_default_value($obj_type, $object, $field, $instance);
+ $items = field_get_default_value($obj_type, $object, $field, $instance, $langcode);
}
$form_element = array();
diff --git a/modules/field_ui/field_ui.admin.inc b/modules/field_ui/field_ui.admin.inc
index bb7c01669..26b9a7e9a 100644
--- a/modules/field_ui/field_ui.admin.inc
+++ b/modules/field_ui/field_ui.admin.inc
@@ -1276,9 +1276,10 @@ function field_ui_field_edit_form_validate($form, &$form_state) {
function field_ui_field_edit_form_submit($form, &$form_state) {
$form_values = $form_state['values'];
$instance = $form_values['instance'];
+ $field_name = $instance['field_name'];
// Update any field settings that have changed.
- $field = field_info_field($instance['field_name']);
+ $field = field_info_field($field_name);
// Remove the 'bundles' element added by field_info_field.
// @todo This is ugly, there must be a better way.
unset($field['bundles']);
@@ -1287,7 +1288,8 @@ function field_ui_field_edit_form_submit($form, &$form_state) {
// Move the default value from the sample widget to the default value field.
if (isset($instance['default_value_widget'])) {
- $instance['default_value'] = $instance['default_value_widget'][$instance['field_name']];
+ $langcode = $form['instance']['default_value_widget'][$field_name]['#language'];
+ $instance['default_value'] = $instance['default_value_widget'][$field_name][$langcode];
unset($instance['default_value_widget']);
}
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 495aa28fd..f8ec38c08 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -2172,14 +2172,21 @@ function taxonomy_autocomplete_elements_process($element, &$form_state, $form) {
// See if this element is in the database format or the transformed format,
// and transform it if necessary.
- if (is_array($element['#value']) && !array_key_exists($field_key, $element['#value'])) {
- $tags = array();
- foreach ($element['#default_value'] as $item) {
- $tags[$item['value']] = isset($item['taxonomy_term']) ? $item['taxonomy_term'] : taxonomy_term_load($item['value']);
+ if (is_array($element['#value'])) {
+ if (!array_key_exists($field_key, $element['#value'])) {
+ $tags = array();
+ foreach ($element['#default_value'] as $item) {
+ $tags[$item['value']] = isset($item['taxonomy_term']) ? $item['taxonomy_term'] : taxonomy_term_load($item['value']);
+ }
+ $typed_string = taxonomy_implode_tags($tags);
+ }
+ else {
+ $typed_string = $element['#value'][$field_key];
}
- $element['#value'] = taxonomy_implode_tags($tags);
}
- $typed_string = $element['#value'];
+ else {
+ $typed_string = $element['#value'];
+ }
$value = array();
$element[$field_key] = array(
@@ -2211,10 +2218,15 @@ function taxonomy_autocomplete_elements_process($element, &$form_state, $form) {
* FAPI function to validate taxonomy term autocomplete element.
*/
function taxonomy_autocomplete_validate($element, &$form_state) {
+ $field_name = $element['#field_name'];
+ if (!isset($form_state['values'][$field_name])) {
+ return;
+ }
+
// Autocomplete widgets do not send their tids in the form, so we must detect
// them here and process them independently.
- if ($form_state['values'][$element['#field_name']]['value']) {
-
+ $langcode = $form_state['complete form'][$field_name]['#language'];
+ if ($tags = $form_state['values'][$field_name][$langcode]['value']) {
// @see taxonomy_node_save
$field = $form_state['#fields'][$element['#field_name']]['field'];
$field_key = $element['#columns'][0];
@@ -2222,7 +2234,7 @@ function taxonomy_autocomplete_validate($element, &$form_state) {
foreach ($field['settings']['allowed_values'] as $tree) {
$vids[] = $tree['vid'];
}
- $typed_terms = drupal_explode_tags($form_state['values'][$element['#field_name']]['value']);
+ $typed_terms = drupal_explode_tags($tags);
$values = array();
foreach ($typed_terms as $typed_term) {