function list_field_diff_view in Diff 7.3
Diff field callback for parsing list field comparative values.
File
- includes/
list.inc, line 11 - Provide diff field functions for the List module.
Code
function list_field_diff_view($items, $context) {
$field = $context['field'];
$instance = $context['instance'];
$settings = $context['settings'];
$diff_items = array();
$allowed_values = list_allowed_values($field, $instance, $context['entity_type'], $context['entity']);
foreach ($items as $delta => $item) {
// Fairly complex condition to prevent duplicate "key (key)" type rendering.
if (isset($allowed_values[$item['value']]) && $allowed_values[$item['value']] != $item['value'] && strlen($allowed_values[$item['value']])) {
switch ($settings['compare']) {
case 'both':
$diff_items[$delta] = $allowed_values[$item['value']] . ' (' . $item['value'] . ')';
break;
case 'label':
$diff_items[$delta] = $allowed_values[$item['value']];
break;
default:
$diff_items[$delta] = $item['value'];
break;
}
}
else {
// If no match was found for the label, fall back to the key.
$diff_items[$delta] = $item['value'];
}
}
return $diff_items;
}