function _features_override_set_deletions in Features Override 7
Same name and namespace in other branches
- 6.2 features_override.export.inc \_features_override_set_deletions()
- 6 features_override.module \_features_override_set_deletions()
- 7.2 features_override.export.inc \_features_override_set_deletions()
Helper function to set the deletions between default and normal features.
1 call to _features_override_set_deletions()
- features_override_detect_overrides in ./
features_override.module - Detect differences between DB and code components of a feature.
File
- ./
features_override.module, line 441 - Export features component overrides.
Code
function _features_override_set_deletions($default, $normal, &$deletions, $keys = array()) {
$object = is_object($default);
// Recursion detected.
if (_features_override_recursion_marker($default, $object) > 1) {
return;
}
foreach ($default as $key => $value) {
// Ignore the marker used to track detect recursion.
if ($key == FEATURES_OVERRIDE_RECURSION_MARKER) {
continue;
}
if ($object) {
if (!isset($normal->{$key})) {
$deletions[] = array(
'keys' => array_merge($keys, array(
array(
'type' => 'object',
'key' => $key,
),
)),
);
}
elseif (is_object($value) || is_array($value)) {
_features_override_set_deletions($value, $normal->{$key}, $deletions, array_merge($keys, array(
array(
'type' => 'object',
'key' => $key,
),
)));
}
}
else {
if (!isset($normal[$key])) {
$deletions[] = array(
'keys' => array_merge($keys, array(
array(
'type' => 'array',
'key' => $key,
),
)),
);
}
elseif (is_object($value) || is_array($value)) {
_features_override_set_deletions($value, $normal[$key], $deletions, array_merge($keys, array(
array(
'type' => 'array',
'key' => $key,
),
)));
}
}
}
}