diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-10-20 00:13:33 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-10-20 00:13:33 +0000 |
commit | add6d63dbfa7aee6178320c1c63811e08bd3d08e (patch) | |
tree | 3333c0c3b4fc9809f89c3c6082d0f5b29eb075ed /modules/field/tests | |
parent | b04836c85e7c6e62e94c396e03123b79df896518 (diff) | |
download | brdo-add6d63dbfa7aee6178320c1c63811e08bd3d08e.tar.gz brdo-add6d63dbfa7aee6178320c1c63811e08bd3d08e.tar.bz2 |
- Patch #940668 by yched: Fixed 'Manage display' : Formatter change not reflected on settings.
Diffstat (limited to 'modules/field/tests')
-rw-r--r-- | modules/field/tests/field_test.field.inc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/modules/field/tests/field_test.field.inc b/modules/field/tests/field_test.field.inc index 01ce89b80..d11bc2fd5 100644 --- a/modules/field/tests/field_test.field.inc +++ b/modules/field/tests/field_test.field.inc @@ -258,6 +258,61 @@ function field_test_field_formatter_info() { } /** + * Implements hook_field_formatter_settings_form(). + */ +function field_test_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) { + $display = $instance['display'][$view_mode]; + $settings = $display['settings']; + + $element = array(); + + // The name of the setting depends on the formatter type. + $map = array( + 'field_test_default' => 'test_formatter_setting', + 'field_test_multiple' => 'test_formatter_setting_multiple', + 'field_test_with_prepare_view' => 'test_formatter_setting_additional', + ); + + if (isset($map[$display['type']])) { + $name = $map[$display['type']]; + + $element[$name] = array( + '#title' => t('Setting'), + '#type' => 'textfield', + '#size' => 20, + '#default_value' => $settings[$name], + '#required' => TRUE, + ); + } + + return $element; +} + +/** + * Implements hook_field_formatter_settings_summary(). + */ +function field_test_field_formatter_settings_summary($field, $instance, $view_mode) { + $display = $instance['display'][$view_mode]; + $settings = $display['settings']; + + $summary = ''; + + // The name of the setting depends on the formatter type. + $map = array( + 'field_test_default' => 'test_formatter_setting', + 'field_test_multiple' => 'test_formatter_setting_multiple', + 'field_test_with_prepare_view' => 'test_formatter_setting_additional', + ); + + if (isset($map[$display['type']])) { + $name = $map[$display['type']]; + $summary = t('@setting: @value', array('@setting' => $name, '@value' => $settings[$name])); + } + + return $summary; +} + +/** * Implements hook_field_formatter_prepare_view(). */ function field_test_field_formatter_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $displays) { |