diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-12-11 16:49:40 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-12-11 16:49:40 +0000 |
commit | ef2c240086e5014db6bdd37c43a75f045bcd5504 (patch) | |
tree | a5cfc85ab30d66cc5326085dcec570467be43c72 /modules/field/tests | |
parent | 47182dfb1f65d2a107037a1386d85e6997afcd04 (diff) | |
download | brdo-ef2c240086e5014db6bdd37c43a75f045bcd5504.tar.gz brdo-ef2c240086e5014db6bdd37c43a75f045bcd5504.tar.bz2 |
- Patch #652834 by yched, effulgentsia: changed Field formatters as render arrays to increase performance (and to clean-up the code).
Diffstat (limited to 'modules/field/tests')
-rw-r--r-- | modules/field/tests/field.test | 4 | ||||
-rw-r--r-- | modules/field/tests/field_test.field.inc | 75 |
2 files changed, 30 insertions, 49 deletions
diff --git a/modules/field/tests/field.test b/modules/field/tests/field.test index 286d1a493..418017f68 100644 --- a/modules/field/tests/field.test +++ b/modules/field/tests/field.test @@ -808,7 +808,7 @@ class FieldAttachOtherTestCase extends FieldAttachTestCase { } /** - * Test field_attach_view() and field_atach_prepare_view(). + * Test field_attach_view() and field_attach_prepare_view(). */ function testFieldAttachView() { $entity_type = 'test_entity'; @@ -893,7 +893,7 @@ class FieldAttachOtherTestCase extends FieldAttachTestCase { $this->content = $output; $this->assertRaw($display, "Multiple formatter: all values are displayed, formatter settings are applied."); - // Test a formatter that uses hook_field_formatter_prepare_view().. + // Test a formatter that uses hook_field_formatter_prepare_view(). $entity = clone($entity_init); $formatter_setting = $this->randomName(); $this->instance['display'] = array( diff --git a/modules/field/tests/field_test.field.inc b/modules/field/tests/field_test.field.inc index 0bdc93ea6..5097a3357 100644 --- a/modules/field/tests/field_test.field.inc +++ b/modules/field/tests/field_test.field.inc @@ -92,16 +92,6 @@ function field_test_field_validate($obj_type, $object, $field, $instance, $langc } /** - * Implements hook_field_sanitize(). - */ -function field_test_field_sanitize($obj_type, $object, $field, $instance, $langcode, &$items) { - foreach ($items as $delta => $item) { - $value = check_plain($item['value']); - $items[$delta]['safe'] = $value; - } -} - -/** * Implements hook_field_is_empty(). */ function field_test_field_is_empty($item, $field) { @@ -238,11 +228,11 @@ function field_test_field_formatter_info() { /** * Implements hook_field_formatter_prepare_view(). */ -function field_test_field_formatter_prepare_view($obj_type, $objects, $field, $instances, $langcode, &$items, $build_mode) { +function field_test_field_formatter_prepare_view($obj_type, $objects, $field, $instances, $langcode, &$items, $displays) { foreach ($items as $id => $item) { // To keep the test non-intrusive, only act on the // 'field_test_needs_additional_data' formatter. - if ($instances[$id]['display'][$build_mode]['type'] == 'field_test_needs_additional_data') { + if ($displays[$id]['type'] == 'field_test_needs_additional_data') { foreach ($item as $delta => $value) { // Don't add anything on empty values. if ($value) { @@ -254,47 +244,38 @@ function field_test_field_formatter_prepare_view($obj_type, $objects, $field, $i } /** - * Theme function for 'field_test_default' formatter. + * Implements hook_field_formatter(). */ -function theme_field_formatter_field_test_default($variables) { - $element = $variables['element']; - - $value = $element['#item']['value']; - $settings = $element['#settings']; - - return $settings['test_formatter_setting'] . '|' . $value; -} - -/** - * Theme function for 'field_test_multiple' formatter. - */ -function theme_field_formatter_field_test_multiple($variables) { - $element = $variables['element']; - - $settings = $element['#settings']; - - $items = array(); - foreach (element_children($element) as $key) { - $items[$key] = $key .':'. $element[$key]['#item']['value']; +function field_test_field_formatter($object_type, $object, $field, $instance, $langcode, $display, $items, $delta) { + $settings = $display['settings']; + + switch ($display['type']) { + case 'field_test_default': + $item = $items[$delta]; + $output = $settings['test_formatter_setting'] . '|' . $item['value']; + break; + + case 'field_test_needs_additional_data': + $item = $items[$delta]; + $output = $settings['test_formatter_setting_additional'] . '|' . $item['value'] . '|' . $item['additional_formatter_value']; + break; + + case 'field_test_multiple': + $array = array(); + foreach ($items as $delta => $item) { + $array[] = $delta .':'. $item['value']; + } + $output = $settings['test_formatter_setting_multiple'] . '|' . implode('|', $array); + break; } - $output = implode('|', $items); - return $settings['test_formatter_setting_multiple'] . '|' . $output; -} -/** - * Theme function for 'field_test_needs_additional_data' formatter. - */ -function theme_field_formatter_field_test_needs_additional_data($variables) { - $element = $variables['element']; - $value = $element['#item']['value']; - $additional = $element['#item']['additional_formatter_value']; - $settings = $element['#settings']; - - return $settings['test_formatter_setting_additional'] . '|' . $value . '|' . $additional; + return array( + '#markup' => $output, + ); } /** - * Sample 'default vale' callback. + * Sample 'default value' callback. */ function field_test_default_value($obj_type, $object, $field, $instance) { return array(array('value' => 99)); |