-
Notifications
You must be signed in to change notification settings - Fork 2
/
name.diff.inc
64 lines (57 loc) · 1.61 KB
/
name.diff.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/**
* @file
* Provide diff field functions for the Name Field module.
*/
/**
* Diff field callback for parsing name field comparative values.
*/
function name_field_diff_view($items, $context) {
$field = $context['field'];
$instance = $context['instance'];
$settings = $context['settings'];
$diff_items = array();
$format = name_get_format_by_machine_name($settings['format']);
if (empty($format)) {
$format = name_get_format_by_machine_name('default');
}
foreach ($items as $delta => $item) {
$name = name_format($item, $format);
$diff_items[$delta] = _name_value_sanitize($name, NULL, $settings['output']);
}
return $diff_items;
}
/**
* Provide default field comparison options.
*/
function name_field_diff_default_options($field_type) {
return array(
'format' => 'default',
'output' => 'default',
);
}
/**
* Provide a form for setting the field comparison options.
*/
function name_field_diff_options_form($field_type, $settings) {
$options_form = array();
$formats = array(
'default' => t('Default'),
) + name_get_custom_format_options();
$options_form['format'] = array(
'#type' => 'select',
'#title' => t('Name format'),
'#default_value' => $settings['format'],
'#options' => $formats,
'#required' => TRUE,
);
$options_form['output'] = array(
'#type' => 'radios',
'#title' => t('Output'),
'#default_value' => $settings['output'],
'#options' => _name_formatter_output_options(),
'#description' => t('This option provides additional options for rendering the field.'),
'#required' => TRUE,
);
return $options_form;
}