summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/field_test.module
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-10-16 03:21:23 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-10-16 03:21:23 +0000
commit087a47ba5c8cdf5b0f79d9a121b7b9dcbbe7e992 (patch)
treeb223ccb070c29008ef9098484bb44894c2f53410 /modules/simpletest/tests/field_test.module
parent13d3072f418835569f37f65b5055e5b3180fad2e (diff)
downloadbrdo-087a47ba5c8cdf5b0f79d9a121b7b9dcbbe7e992.tar.gz
brdo-087a47ba5c8cdf5b0f79d9a121b7b9dcbbe7e992.tar.bz2
#493314 by yched and catch: Add multiple hook for formatters.
Diffstat (limited to 'modules/simpletest/tests/field_test.module')
-rw-r--r--modules/simpletest/tests/field_test.module40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules/simpletest/tests/field_test.module b/modules/simpletest/tests/field_test.module
index 8cc99b1e9..8bb504389 100644
--- a/modules/simpletest/tests/field_test.module
+++ b/modules/simpletest/tests/field_test.module
@@ -564,6 +564,13 @@ function field_test_field_formatter_info() {
'multiple values' => FIELD_BEHAVIOR_CUSTOM,
),
),
+ 'field_test_needs_additional_data' => array(
+ 'label' => t('Tests hook_field_formatter_prepare_view()'),
+ 'field types' => array('test_field'),
+ 'settings' => array(
+ 'test_formatter_setting_additional' => 'dummy test string',
+ ),
+ ),
);
}
@@ -578,10 +585,31 @@ function field_test_theme() {
'field_formatter_field_test_multiple' => array(
'arguments' => array('element' => NULL),
),
+ 'field_formatter_field_test_needs_additional_data' => array(
+ 'arguments' => array('element' => NULL),
+ ),
);
}
/**
+ * Implement hook_field_formatter_prepare_view().
+ */
+function field_test_field_formatter_prepare_view($obj_type, $objects, $field, $instances, $langcode, &$items, $build_mode) {
+ 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') {
+ foreach ($item as $delta => $value) {
+ // Don't add anything on empty values.
+ if ($value) {
+ $items[$id][$delta]['additional_formatter_value'] = $value['value'] + 1;
+ }
+ }
+ }
+ }
+}
+
+/**
* Theme function for 'field_test_default' formatter.
*/
function theme_field_formatter_field_test_default($variables) {
@@ -610,6 +638,18 @@ function theme_field_formatter_field_test_multiple($variables) {
}
/**
+ * 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;
+}
+
+/**
* Sample function to test default value assignment.
*/
function field_test_default_value($obj_type, $object, $field, $instance) {