summaryrefslogtreecommitdiff
path: root/modules/field/tests
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-10-20 00:13:33 +0000
committerDries Buytaert <dries@buytaert.net>2010-10-20 00:13:33 +0000
commitadd6d63dbfa7aee6178320c1c63811e08bd3d08e (patch)
tree3333c0c3b4fc9809f89c3c6082d0f5b29eb075ed /modules/field/tests
parentb04836c85e7c6e62e94c396e03123b79df896518 (diff)
downloadbrdo-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.inc55
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) {