function _features_override_set_item in Features Override 6
Same name and namespace in other branches
- 7 features_override.alter.inc \_features_override_set_item()
Set a single addition or deletion for a component.
1 call to _features_override_set_item()
- features_override_features_default_alter in ./
features_override.alter.inc - Alter default features.
File
- ./
features_override.alter.inc, line 27
Code
function _features_override_set_item(&$item, $action, $keys, $value = NULL) {
$key = array_shift($keys);
if ($key['type'] == 'object') {
if (count($keys) && isset($item->{$key['key']})) {
_features_override_set_item($item->{$key['key']}, $action, $keys, $value);
}
else {
switch ($action) {
case 'add':
$item->{$key['key']} = $value;
break;
case 'delete':
unset($item->{$key['key']});
break;
}
}
}
else {
if (count($keys) && isset($item[$key['key']])) {
_features_override_set_item($item[$key['key']], $action, $keys, $value);
}
else {
switch ($action) {
case 'add':
$item[$key['key']] = $value;
break;
case 'delete':
unset($item[$key['key']]);
break;
}
}
}
}