function features_override_supported_components in Features Override 7
Same name and namespace in other branches
- 6 features_override.module \features_override_supported_components()
Return the component types that can be overridden.
Allow components to declare themselves 'overridable' but explicitly exclude component types unlikely to override cleanly.
Return value
Array of component types.
2 calls to features_override_supported_components()
- features_override_detect_overrides in ./
features_override.module - Detect differences between DB and code components of a feature.
- features_override_form_system_modules_alter in ./
features_override.module - Clear features_override cache on admin/modules form.
File
- ./
features_override.module, line 126 - Export features component overrides.
Code
function features_override_supported_components($hooks = FALSE, $reset = FALSE) {
if ($reset) {
cache_clear_all('features_override:components', 'cache');
}
else {
$components = cache_get('features_override:components');
if (isset($components) && is_array($components)) {
return $hooks ? $components : drupal_map_assoc(array_keys($components));
}
}
$components = array();
foreach (features_get_components() as $component => $info) {
// Don't offer an override for overriding!
if (isset($info['default_hook']) && module_hook('features_override', $info['default_hook'] . '_alter')) {
$components[$component] = $info['default_hook'];
}
}
// Allow modules to alter the compontents before caching.
drupal_alter('features_override_supported_components', $components);
cache_set('features_override:components', $components);
return $hooks ? $components : drupal_map_assoc(array_keys($components));
}