function features_get_conflicts in Features 7.2
Same name and namespace in other branches
- 6 features.module \features_get_conflicts()
- 7 features.module \features_get_conflicts()
Detects potential conflicts between features that provide the same items.
Parameters
bool $reset: If TRUE, relevant caches will be reset.
Return value
string[][][][] Format: $[$module_A][$module_B][$component][] = $name E.g. $['myfeature']['otherfeature']['node'][] = 'article'. Nested array/map of (feature) modules that have conflicting features.
3 calls to features_get_conflicts()
- features_admin_components in ./
features.admin.inc - Form builder for 'admin/structure/features/%feature'.
- features_admin_form in ./
features.admin.inc - Form builder for 'admin/structure/features'.
- features_form_validate in ./
features.admin.inc - Validate handler for the 'manage features' form.
File
- ./
features.module, line 990 - Main *.module file for the 'features' module.
Code
function features_get_conflicts($reset = FALSE) {
$conflicts = array();
$component_info = features_get_components();
$map = features_get_component_map(NULL, $reset);
foreach ($map as $type => $components) {
// Only check conflicts for components we know about.
if (isset($component_info[$type])) {
foreach ($components as $component => $modules) {
if (isset($component_info[$type]['duplicates']) && $component_info[$type]['duplicates'] == FEATURES_DUPLICATES_ALLOWED) {
continue;
}
elseif (count($modules) > 1) {
foreach ($modules as $module) {
if (!isset($conflicts[$module])) {
$conflicts[$module] = array();
}
foreach ($modules as $m) {
if ($m != $module) {
$conflicts[$module][$m][$type][] = $component;
}
}
}
}
}
}
}
return $conflicts;
}