function money_field_formatter_view in Money field 7
Implements hook_field_formatter_view().
File
- ./
money.module, line 226 - This module defines the Money field.
Code
function money_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
// Dependency required by CurrencyLocalePattern class.
ctools_include('export');
foreach ($items as $delta => $item) {
$currency = $item['currency'];
$currency_object = currency_load($currency);
$currency_pattern = CurrencyLocalePattern::loadFromEnv();
$symbol = $currency_object->sign;
$decimal_separator = $currency_pattern->symbol_decimal_separator;
$grouping_separator = $currency_pattern->symbol_grouping_separator;
// Amount with currency-based decimal and grouping separators.
$amount = number_format($item['amount'], $field['settings']['scale'], $decimal_separator, $grouping_separator);
// Amount with currency-based decimal and grouping separators and a currency symbol.
$amount_with_symbol = $display['type'] == 'money_default' ? $currency_object
->format($item['amount']) : $item['amount'];
$output = '';
foreach (explode('|', $instance['widget']['settings']['currency_display_mode']) as $option) {
switch ($option) {
case 'a':
// The amount.
$output .= $amount;
break;
case 'as':
// Amount with currency symbol.
$output .= $amount_with_symbol;
break;
case 'c':
// Currency code.
$output .= $currency;
break;
case 's':
// Currency symbol.
$output .= $symbol;
break;
case '+':
// Separator.
$output .= $display['type'] == 'money_default' ? " " : ' ';
break;
}
}
$element[$delta] = array(
'#markup' => $output,
);
}
return $element;
}