summaryrefslogtreecommitdiff
path: root/modules/field/tests
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-11 16:49:40 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-11 16:49:40 +0000
commitef2c240086e5014db6bdd37c43a75f045bcd5504 (patch)
treea5cfc85ab30d66cc5326085dcec570467be43c72 /modules/field/tests
parent47182dfb1f65d2a107037a1386d85e6997afcd04 (diff)
downloadbrdo-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.test4
-rw-r--r--modules/field/tests/field_test.field.inc75
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));