You are here

function power_menu_get_menu_handlers in Power Menu 7.2

Shortcut function to get menu_handlers plugins. The handlers are sorted by the module settings.

Parameters

$only_enabled: Is this parameter set to TRUE, only enabled menu_handlers returned.

Return value

An array of available menu_handlers

6 calls to power_menu_get_menu_handlers()
power_menu_configuration_form in ./power_menu.admin.inc
Form definition for Powe Menu configuration.
power_menu_configuration_handler_form in ./power_menu.admin.inc
Gets the settings form from handler plugins.
power_menu_form_menu_edit_item_alter in ./power_menu.module
Implements hook_form_ID_alter().
power_menu_get_path in ./power_menu.module
Gets the system path for the current page.
power_menu_plugin_get_handler_instance_by_name in ./power_menu.module
Creates an instance for given handler name.

... See full list

File

./power_menu.module, line 142

Code

function power_menu_get_menu_handlers($only_enabled = FALSE) {
  ctools_include('plugins');
  $handlers = ctools_get_plugins('power_menu', 'menu_handlers');
  $ordered_handlers = array();
  $settings = variable_get('power_menu_handlers_settings', array());

  // Sort handlers by settings weight
  uasort($settings, 'power_menu_handlers_weight_compare');

  // Sort available handlers based on settings array and merge with new handler plugins
  foreach ($settings as $key => $value) {
    if ((!$only_enabled || $value['enabled']) && !empty($handlers[$key])) {
      $ordered_handlers[$key] = $handlers[$key];
    }
    unset($handlers[$key]);
  }
  if ($only_enabled) {
    return $ordered_handlers;
  }
  else {
    return array_merge($ordered_handlers, $handlers);
  }
}