Révision a1cafe7e
Ajouté par Assos Assos il y a plus de 4 ans
drupal7/sites/all/modules/field_collection/field_collection.diff.inc | ||
---|---|---|
2 | 2 |
|
3 | 3 |
/** |
4 | 4 |
* @file |
5 |
* Provide diff field functions for the Field collection module.
|
|
5 |
* Provide diff field functions for the Field Collection.
|
|
6 | 6 |
*/ |
7 | 7 |
|
8 | 8 |
/** |
9 |
* Diff field callback for parsing Field collection fields comparative values.
|
|
9 |
* Diff field callback for parsing Field Collection fields comparative values.
|
|
10 | 10 |
*/ |
11 | 11 |
function field_collection_field_diff_view($items, $context) { |
12 | 12 |
$diff_items = array(); |
... | ... | |
25 | 25 |
$view_mode = $context['view_mode']; |
26 | 26 |
$entity = entity_revision_load($entity_type, $item['revision_id']); |
27 | 27 |
|
28 |
if(empty($entity)) { |
|
28 |
if (empty($entity)) {
|
|
29 | 29 |
return array(); |
30 | 30 |
} |
31 | 31 |
|
... | ... | |
40 | 40 |
$field_context['custom_settings'] = FALSE; |
41 | 41 |
} |
42 | 42 |
$view_mode_settings = field_view_mode_settings($entity_type, $bundle_name); |
43 |
$actual_mode = (!empty($view_mode_settings[$view_mode]['custom_settings'])) ? $view_mode : 'default';
|
|
43 |
$actual_mode = !empty($view_mode_settings[$view_mode]['custom_settings']) ? $view_mode : 'default';
|
|
44 | 44 |
if (!isset($field_context['custom_settings'])) { |
45 | 45 |
$field_context['custom_settings'] = $actual_mode && $actual_mode == $view_mode; |
46 | 46 |
} |
... | ... | |
50 | 50 |
|
51 | 51 |
$result = array(); |
52 | 52 |
foreach ($instances as $instance) { |
53 |
// Any view mode is supported in relation to hiding fields, but only if selected. |
|
53 |
// Any view mode is supported in relation to hiding fields, but only if |
|
54 |
// selected. |
|
54 | 55 |
if ($actual_mode && $instance['display'][$actual_mode]['type'] == 'hidden') { |
55 | 56 |
continue; |
56 | 57 |
} |
... | ... | |
67 | 68 |
$field_context['settings'] = diff_get_field_settings($field_context); |
68 | 69 |
$field_context['display'] = $instance['display'][$actual_mode]; |
69 | 70 |
|
71 |
$old_items = array(); |
|
72 |
$new_items = array(); |
|
73 |
if (!empty($entity->{$field_name}[$langcode])) { |
|
74 |
$new_items = $entity->{$field_name}[$langcode]; |
|
75 |
} |
|
76 |
|
|
77 |
$func = $field['module'] . '_field_diff_view_prepare'; |
|
78 |
if (function_exists($func)) { |
|
79 |
$func($old_items, $new_items, $field_context); |
|
80 |
} |
|
81 |
|
|
70 | 82 |
$func = $field['module'] . '_field_diff_view'; |
71 | 83 |
if (!function_exists($func)) { |
72 | 84 |
$func = 'diff_field_diff_view'; |
73 | 85 |
} |
74 | 86 |
|
75 |
if (!empty($entity->{$field_name}[$langcode])) {
|
|
76 |
$raw_values = $func($entity->{$field_name}[$langcode], $field_context);
|
|
87 |
if (!empty($new_items)) {
|
|
88 |
$raw_values = $func($new_items, $field_context);
|
|
77 | 89 |
$values = array(); |
78 | 90 |
foreach ($raw_values as $raw_value) { |
79 |
$values[] = is_array($raw_value) ? implode(", ", $raw_value) : $raw_value;
|
|
91 |
$values[] = is_array($raw_value) ? implode(', ', $raw_value) : $raw_value;
|
|
80 | 92 |
} |
81 | 93 |
|
82 |
$result[] = check_plain($instance['label'] . ': ' . implode(", ", $values));
|
|
94 |
$result[] = check_plain($instance['label'] . ': ' . implode(', ', $values));
|
|
83 | 95 |
} |
84 | 96 |
} |
85 | 97 |
} |
Formats disponibles : Unified diff
Weekly update of contrib modules