You are here

function rules_get_components in Rules 7.2

Returns an array of configured components.

For actually executing a component use rules_invoke_component(), as this retrieves the component from cache instead.

Parameters

$label: Whether to return only the label or the whole component object.

$type: Optionally filter for 'action' or 'condition' components.

array $conditions: An array of additional conditions as required by rules_config_load().

Return value

array An array keyed by component name containing either the label or the config.

5 calls to rules_get_components()
rules_rules_core_action_info in modules/rules_core.rules.inc
Implements hook_rules_action_info() on behalf of the pseudo rules_core module.
rules_rules_core_condition_info in modules/rules_core.rules.inc
Implements hook_rules_condition_info() on behalf of the pseudo rules_core module.
rules_scheduler_component_options_list in rules_scheduler/rules_scheduler.rules.inc
Options list callback returning a list of action components.
rules_scheduler_form in rules_scheduler/rules_scheduler.admin.inc
Form for deletion of tasks by component.
_rules_rebuild_component_cache in ./rules.module
Cache components to allow efficient usage via rules_invoke_component().

File

./rules.module, line 922
Rules engine module.

Code

function rules_get_components($label = FALSE, $type = NULL, $conditions = array()) {
  $cache = rules_get_cache();
  $plugins = array_keys(rules_filter_array($cache['plugin_info'], 'component', TRUE));
  $conditions = $conditions + array(
    'plugin' => $plugins,
  );
  $faces = array(
    'action' => 'RulesActionInterface',
    'condition' => 'RulesConditionInterface',
  );
  $items = array();
  foreach (rules_config_load_multiple(FALSE, $conditions) as $name => $config) {
    if (!isset($type) || $config instanceof $faces[$type]) {
      $items[$name] = $label ? $config
        ->label() : $config;
    }
  }
  return $items;
}