function profile_module_manager_get_bundles in Profile Module Manager 7.2
Same name and namespace in other branches
- 7 profile_module_manager.module \profile_module_manager_get_bundles()
Returns an array of bundles.
Parameters
string $status:
Return value
mixed
4 calls to profile_module_manager_get_bundles()
- profile_module_manager_admin_page in ./
profile_module_manager.module - Builds out the admin bundles page.
- profile_module_manager_admin_settings in ./
profile_module_manager.admin.inc - Page callback for admin/config/development/module-manager/settings.
- profile_module_manager_build_ideal in ./
profile_module_manager.module - Returns an array of core modules.
- profile_module_manager_bundle_list in ./
profile_module_manager.admin.inc - Callback for admin/settings/bundles/list.
File
- ./
profile_module_manager.module, line 168 - Alters grouping in admin/modules using hook_system_info_alter
Code
function profile_module_manager_get_bundles($status = 'all') {
if ($status == 'all') {
$bundles = db_query("SELECT name, filename FROM {system} WHERE type = 'module' ORDER BY weight ASC, name ASC")
->fetchAllAssoc('name');
}
if ($status == 'enabled') {
$bundles = db_query("SELECT name, filename FROM {system} WHERE type = 'module' AND status = 1 ORDER BY weight ASC, name ASC")
->fetchAllAssoc('name');
}
// Check for _bundle in the machine name, but also look for something in the info file.
// This will avoid false positives from contrib?
foreach ($bundles as $key => $bundle) {
$info_file = str_replace(".module", ".info", $bundle->filename);
$info = drupal_parse_info_file($info_file);
$bundle_info[$key] = $info;
if (!isset($info['bundle_group']) && !strpos($bundle->name, '_bundle')) {
unset($bundles[$key]);
}
}
return $bundles;
}