diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-07-14 10:27:29 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-07-14 10:27:29 +0000 |
commit | f5dff788a8c89650e9cf263319a21065ef56c58b (patch) | |
tree | fc02f7a6bb1f12e987ef1a6ac2d77b5bfcf6aaac /modules/field/field.crud.inc | |
parent | ef09cf93e5ac3b0a3783170c6f29fdc4f9df6224 (diff) | |
download | brdo-f5dff788a8c89650e9cf263319a21065ef56c58b.tar.gz brdo-f5dff788a8c89650e9cf263319a21065ef56c58b.tar.bz2 |
- Patch #509736 by yched: make sure all settings are present at run-time.
Diffstat (limited to 'modules/field/field.crud.inc')
-rw-r--r-- | modules/field/field.crud.inc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc index dbcbda92e..91fb159ed 100644 --- a/modules/field/field.crud.inc +++ b/modules/field/field.crud.inc @@ -339,6 +339,10 @@ function field_read_fields($params = array(), $include_additional = array()) { unset($field['data']); $field += $data; + // Make sure all settings expected in the current execution context are + // present. + $field['settings'] += field_info_field_settings($field['type']); + module_invoke_all('field_read_field', $field); // Populate storage information. @@ -620,7 +624,7 @@ function field_read_instances($params = array(), $include_additional = array()) $query = db_select('field_config_instance', 'fci', array('fetch' => PDO::FETCH_ASSOC)); $query->join('field_config', 'fc', 'fc.id = fci.field_id'); $query->fields('fci'); - #$query->fields('fc', array('type')); + $query->fields('fc', array('type')); // Turn the conditions into a query. foreach ($params as $key => $value) { @@ -650,8 +654,13 @@ function field_read_instances($params = array(), $include_additional = array()) $instance['widget']['module'] = $record['widget_module']; $instance['widget']['active'] = $record['widget_active']; - // TODO D7 : Set default widget settings, default instance settings, default display settings. - // (the modules that defined them might have changed since the instance was last saved). + // Make sure all settings expected in the current execution context are + // present. + $instance['settings'] += field_info_instance_settings($record['type']); + $instance['widget']['settings'] += field_info_widget_settings($instance['widget']['type']); + foreach ($instance['display'] as $build_mode => $display) { + $instance['display'][$build_mode]['settings'] += field_info_formatter_settings($display['type']); + } module_invoke_all('field_read_instance', $instance); $instances[] = $instance; |