function _features_override_set_deletions in Features Override 6.2
Same name and namespace in other branches
- 6 features_override.module \_features_override_set_deletions()
- 7.2 features_override.export.inc \_features_override_set_deletions()
- 7 features_override.module \_features_override_set_deletions()
Helper function to set the deletions between default and normal features.
Parameters
$default: The default defination of a component.
$normal: The current defination of a component.
$deletions: An array of currently gathered deletions.
$ignore_keys: Keys to ignore while processing element.
$level: How many levels deep into object.
$keys: The keys for this level.
1 call to _features_override_set_deletions()
- features_override_module_component_overrides in ./
features_override.export.inc - Get overrides for specific module/component.
File
- ./
features_override.export.inc, line 290 - Helper function to export features overrides.
Code
function _features_override_set_deletions(&$default, &$normal, &$deletions, $ignore_keys = array(), $level = 0, $keys = array()) {
$object = is_object($default);
foreach ($default as $key => $value) {
if (isset($ignore_keys[$key]) && $level == $ignore_keys[$key]) {
continue;
}
if ($object) {
if (!property_exists($normal, $key)) {
$_keys = array_merge($keys, array(
array(
'type' => 'object',
'key' => $key,
),
));
$deletions[features_override_make_key($_keys)] = array(
'keys' => $_keys,
);
}
elseif (property_exists($normal, $key) && (is_array($value) || is_object($value))) {
_features_override_set_deletions($value, $normal->{$key}, $deletions, $ignore_keys, $level + 1, array_merge($keys, array(
array(
'type' => 'object',
'key' => $key,
),
)));
}
}
else {
if (!array_key_exists($key, $normal)) {
$_keys = array_merge($keys, array(
array(
'type' => 'array',
'key' => $key,
),
));
$deletions[features_override_make_key($_keys)] = array(
'keys' => $_keys,
);
}
elseif (array_key_exists($key, $normal) && (is_array($value) || is_object($value))) {
_features_override_set_deletions($value, $normal[$key], $deletions, $ignore_keys, $level + 1, array_merge($keys, array(
array(
'type' => 'array',
'key' => $key,
),
)));
}
}
}
}