You are here

function profile_module_manager_get_bundles in Profile Module Manager 7.2

Same name and namespace in other branches
  1. 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;
}