diff --git a/inline_entity_form.module b/inline_entity_form.module index 70935fb..1b97431 100644 --- a/inline_entity_form.module +++ b/inline_entity_form.module @@ -1655,9 +1655,28 @@ function theme_inline_entity_form_entity_table($variables) { $data = ''; if ($field['type'] == 'property') { $property = $wrapper->{$field_name}; - // label() returns human-readable versions of token and list properties. - $data = $property->label() ? $property->label() : $property->value(); - $data = empty($field['sanitized']) ? check_plain($data) : $data; + if (isset($field['formatter']) && function_exists($field['formatter'])) { + $arguments = array(); + if (isset($field['arguments']) && is_array($field['arguments'])) { + // Arguments have been defined. Set property value as the first + // arg. + $arguments[] = $property->value(); + foreach ($field['arguments'] as $arg) { + $arguments[] = $arg; + } + } + else { + // Default argument for formatter is the properties value. + $arguments[] = $property->value(); + } + $data = call_user_func_array($field['formatter'], $arguments); + } + else { + // There's no formatter. label() returns human-readable versions of + // token and list properties. + $data = $property->label() ? $property->label() : $property->value(); + $data = empty($field['sanitized']) ? check_plain($data) : $data; + } } elseif ($field['type'] == 'field' && isset($entity->{$field_name})) { $display = array(