function field_delimiter_field_attach_view_alter in Field Delimiter (Multi Value Field Formatter) 7
Implements hook_field_attach_view_alter().
Add a delimiter after every field value.
File
- ./
field_delimiter.module, line 75 - Provides settings for delimiter on multi-value fields.
Code
function field_delimiter_field_attach_view_alter(&$output, $context) {
foreach (element_children($output) as $field_name) {
if (count($output[$field_name]['#items']) < 2) {
// Do nothing, no need for delimiter.
continue;
}
$element =& $output[$field_name];
$delimiter = NULL;
// Try to fetch settings from context.
// It is needed to test if key exist, not if not empty, because user would
// Configure to not use delimiter (empty field).
if (isset($context['display']['settings']['field_delimiter'])) {
$delimiter = $context['display']['settings']['field_delimiter'];
}
else {
$info = field_formatter_settings_get_instance_display_settings($element['#entity_type'], $field_name, $element['#bundle'], $element['#view_mode']);
$delimiter = !empty($info['field_delimiter']) ? $info['field_delimiter'] : NULL;
}
if ($delimiter) {
foreach ($element['#items'] as $delta => $item) {
if ($delta + 1 < count($element['#items'])) {
// Check for data under field also.
if (!empty($element[$delta + 1]) && !empty($element[$delta + 1]['#type'])) {
$element[$delta]['#suffix'] = filter_xss($delimiter, array(
'br',
'hr',
'span',
'img',
'wbr',
));
}
}
}
}
}
}